可能的重复:
JavaScript - 根据另一个整数数组对数组进行排序
Javascript - 基于另一个数组对数组进行排序
如果我有一个像这样的数组:
['one','four','two']
还有另一个像这样的数组:
[{
key: 'one'
},{
key: 'two'
},{
key: 'four'
}]
我将如何对第二个数组进行排序,以便它是key
属性遵循第一个的顺序?在这种情况下,我想要:
[{
key: 'one'
},{
key: 'four'
},{
key: 'two'
}]
我们可以使用 sort() 函数来完成此操作,方法是向它传递一个进行比较的自定义函数。该函数必须返回给定的 3 个可能值a
or b
比较:
return -1
if a
索引低于b
return 0
if a
被认为等于b
return 1
if a
索引大于b
考虑到这一点,我们可以定义一个如下的函数:
function sortFunction(a,b){
var indexA = arr.indexOf(a['key']);
var indexB = arr.indexOf(b['key']);
if(indexA < indexB) {
return -1;
}else if(indexA > indexB) {
return 1;
}else{
return 0;
}
}
该函数将接受您在数组中定义的对象,并查找该值在数组中的位置arr
array,这是您要比较的数组。然后它比较索引,并根据需要返回值。
我们通过将函数传递到sort()
函数如下:
testArray.sort(sortFunction)
where testArray
是您要排序的数组。
您可以看一下这里,我在此处执行了此示例,您可以看到数组中的第二个对象在调用排序函数之前和之后向您“发出警报”。http://jsfiddle.net/Sqys7/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)