Javascript数组排序
Javascript - arrays sorting
本文关键字:数组排序 Javascript 更新时间:2023-09-26
我有两个数组:
keys_array = [2,4,5,8,9]
values_array = ['two','four','five','eight','nine']
我需要得到:
#transitional result
#values sorted alphabetically
sorted_by_value_name_array = [
['8','eight'],
['5','five'],
['4','four'],
['9','nine'],
['2','two']
]
#final result
sorted_keys_array = [8,5,4,9,2]
如何使用javascript或jQuery实现这一点?
var keys_array = [2,4,5,8,9];
var values_array = ['two','four','five','eight','nine'];
var new_array = [];
for(var i=0; i<keys_array.length; i++){
new_array.push([keys_array[i],values_array[i]]);
}
console.log(new_array.sort(function(a,b){ return a[1] < b[1] ? -1 : 1; }));
Andy的回答很好,但如果键和值没有完全对齐呢?然后,您需要JavaScript才能将字符串解释为数字。
我找到了斯蒂芬·查普曼的一个有效的单词到数字转换器。通过在另一个函数中使用这一点,我们可以或多或少地拥有任何数字单词,并将其与相应的数字组合。而且他们一开始甚至不需要对齐。
// paste the toWords function here
function naturalCombine(numbers, words) {
var numberCount = numbers.length,
combined = [];
for (var i=0; i < numberCount; i++) {
var word = toWords(numbers[i]).trim(),
found = words[words.indexOf(word)];
if (found)
combined.push([numbers[i], found]);
else
combined.push([numbers[i], "unknown"]);
}
return combined;
}
var keysArray = ["4", "62", "2", "94", "5", "9", "8", "87", "1674"];
var valuesArray = ["two", "one thousand six hundred seventy four", "four",
"five", "eight", "nine", "eighty seven", "ninety four"];
var combined = naturalCombine(keysArray, valuesArray);
检查jsFiddle 上的测试用例
var keys_array = [2,4,5,8,9],
values_array = ['two','four','five','eight','nine'];
var svalues = values_array.slice().sort(), // copy array and sort it
skeys = [];
for(var i = 0, s = svalues.length; i < s; i++){
skeys.push(keys_array[values_array.indexOf(svalues[i])]);
}
演示
您需要使用indexOf()
扩展数组原型,使其能够与不支持它的浏览器一起工作。
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 如何对包含数组的javascript对象进行排序
- Javascript将数组排序到树中
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序
- javascript 2D数组-排序和合并
- Javascript数组排序将字符串MAG250放在底部,其他项目放在ASC顶部
- Javascript:先按第二列desc对2D数组排序,然后按第一列asc排序
- Javascript:自定义数组排序或基于模式排序
- 在javascript中自定义数组排序
- 根据值将javascript数组排序为嵌套数组
- Javascript中带条件的数组排序
- 在Javascript中保留对象数组排序后的插入顺序
- Javascript数组排序