gpt4 book ai didi

javascript - 通过 JavaScript 中的自定义函数对数组进行排序

转载 作者:行者123 更新时间:2023-12-01 15:52:05 25 4
gpt4 key购买 nike

我只使用 Javascript。

我有以下字符串:

?pn1=age&pn2=name&pv1=12&pv2=alice

我需要做的是获得以下结果:

age:12|name:alice

我想了一个办法,就是下面这个:

var str = "?pn1=age&pn2=name&pv1=12&pv2=alice";
var strSplit = str.split("&");
for (var i = 0; i < strSplit.length; i++) {
console.log(strSplit[i]);
}

这将返回以下结果:

?pn1=age
pn2=name
pv1=12
pv2=alice

由于我想将pn1pv1 以及pn2pv2 连接在一起,因此出现在字符串的末尾很重要。

?pn1=年龄
pn2=名称
pv1=12
pv2=爱丽丝

所以我想到了一种方法,就是根据这个数字对数组进行排序。然后在排序后将每 2 个值连接在一起。

我尝试了以下代码:

 strSplit.sort(function() {
var pref = strSplit[i].split('=')[0];
return pref.charAt(pref.length-1);
});

好像不行

任何帮助将不胜感激

最佳答案

您可以拆分各个部分,收集所有项目并返回一个连接的字符串。

var string = '?pn1=age&pn2=name&pv1=12&pv2=alice',
result = string
.slice(1)
.split('&')
.reduce((r, p) => {
var [k, value] = p.split('='),
[key, index] = k.split(/(\d+)/);
index--;
r[index] = r[index] || {};
r[index][key] = value;
return r;
}, [])
.map(({ pn, pv }) => [pn, pv].join(':'))
.join('|');

console.log(result);

关于javascript - 通过 JavaScript 中的自定义函数对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56442335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com