sou*_*aid 2 javascript arrays string
我试图根据每个字符串中的字符对字符串数组进行排序.到目前为止,我有这个
function doMath(s) {
let arr = s.split(' ');
let letterArr = [];
let sortedArr = [];
let n = 0;
for (var i = 0; i < arr.length; i++) {
n = arr[i].indexOf(arr[i].match(/[a-z]/i));
letterArr.push(arr[i][n]);
}
letterArr.sort();
console.log(letterArr);
for (i = 0; i < arr.length; i++) {
for (var j = 0; j <= arr[i].length; j++) {
if (arr[i].indexOf(letterArr[j]) > -1) {
sortedArr.unshift(arr[i]);
}
}
}
console.log(sortedArr);
}
doMath("24z6 1x23 y369 89a 900b");Run Code Online (Sandbox Code Playgroud)
记录此数组时显示问题.如果我使用sortedArr.push(arr[i]);,那么输出是:
["24z6", "1x23", "y369", "89a", "900b"]
Run Code Online (Sandbox Code Playgroud)
但是,当我使用时sortedArr.unshift(arr[i]);,我得到输出:
["900b", "89a", "y369", "1x23", "24z6"]
Run Code Online (Sandbox Code Playgroud)
我不确定为什么b会在此之前发生a.
我只想把它作为排序的az.我试过push(),这是正确的,但倒退(za).当我尝试时unshift(),它是正确的,除了b和a切换.
function doMath(s) {
return s.split(' ').sort(function (a,b) {
return a.match(/[a-z]/i)[0].localeCompare(b.match(/[a-z]/i)[0])})
}
console.log(doMath("24z6 1x23 y369 89a 900b"));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |