通过自定义排序脚本保留字符串值位置所需的Javascript帮助

通过自定义排序脚本保留字符串值位置所需的Javascript帮助,javascript,string,variables,split,sorting,Javascript,String,Variables,Split,Sorting,我有一个字符串变量,定义如下: Jane的账户-123456789-Bob的账户-123456-Fred的账户-246802-Lily的账户-13579-Jim的账户-46748764- 为了解决这个问题,我们假设它等于var value1 我正在尝试获取此字符串并运行一个查询,该查询将查找匹配的帐号,然后显示关联的帐号名。为此,我首先将变量拆分为一个数组: var value2=value1.拆分(“-”) 当我这样做时,排序函数通过增加数字然后按字母顺序对列表重新排序 value2=,123

我有一个字符串变量,定义如下:

Jane的账户-123456789-Bob的账户-123456-Fred的账户-246802-Lily的账户-13579-Jim的账户-46748764-

为了解决这个问题,我们假设它等于
var value1

我正在尝试获取此字符串并运行一个查询,该查询将查找匹配的帐号,然后显示关联的帐号名。为此,我首先将变量拆分为一个数组:

var value2=value1.拆分(“-”)

当我这样做时,排序函数通过增加数字然后按字母顺序对列表重新排序

value2=,123456789135792468024674876446748764,鲍勃的账户,弗雷德的账户,简的账户,吉姆的账户,莉莉的账户

我想知道如何将字符串拆分成一个数组,并保持拆分材质的顺序

这将是所需的输出:

,简的账户,123456789,鲍勃的账户,123456,弗雷德的账户,246802,莉莉的账户,13579,吉姆的账户,46748764


谢谢。

我想知道那一串数据的格式是否能更好。它是从哪里来的?它不能仅仅以JSON格式传递给您吗?那就是A计划

计划B是自己解析它,将结构转换为类似于对象数组的东西:

var value1 = "Jane's Account-123456789-Bob's Account-123456-Fred's Account-246802-Lily's Account-13579-Jim's Account-46748764-";

// get rid of the last hyphen
value1 = value1.replace(/-$/, '');

// split up the input
var parts = value1.split('-');

// build the new structure
var accounts = [];
for (var i=0; i < parts.length; i+=2) {
    accounts.push({'name': parts[i], 'number': parts[i + 1]});
}

alert(JSON.stringify(accounts));

// sort accounts by name
accounts.sort(function (a, b) {
    if (a.name == b.name) return 0;
    if (a.name > b.name) return 1;
    return -1;
});

alert(JSON.stringify(accounts));
var value1=“简的账户-123456789-鲍勃的账户-123456-弗雷德的账户-246802-莉莉的账户-13579-吉姆的账户-46748764-”;
//去掉最后的连字符
value1=value1.替换(/-$/,'');
//拆分输入
var parts=value1.拆分('-');
//建立新的结构
var账户=[];
对于(变量i=0;ib.name)返回1;
返回-1;
});
警报(JSON.stringify(accounts));

什么是排序功能?我不明白,您不能只执行
value1.替换('-',',')
?您的代码已经给出了所需的输出。看看这把小提琴