想办法弄清楚。不能。我有两个数组,我想对其中一个数组的索引进行排序,以便按照其对象匹配索引。
数组1如下所示:
var arr1 = [
{
"name": "bobby",
"occupation": "singer"
},
{
"name": "mindy",
"occupation": "artist"
}
]
和数组2:
var arr2 = [
{
"name": "mindy",
"hobby": "drawing"
},
{
"name": "bobby",
"hobby": "driving"
}
]
哪一个被重新编入索引并不重要。关键是,我有两个名称bobby
和mindy
,我想重新排列其中一个数组,以便它们的索引与另一个数组匹配。
发布于 2018-06-23 18:19:49
将sort
与compareFunction结合使用。
请在下面找到评论。
var arr1 = [
{
"name": "bobby",
"occupation": "singer"
},
{
"name": "mindy",
"occupation": "artist"
}
]
var arr2 = [
{
"name": "mindy",
"hobby": "drawing"
},
{
"name": "bobby",
"hobby": "driving"
}
]
// create intermediate array of arr2 names
arr2Names = arr2.map(x => x.name)
// use sort:
arr1 = arr1.sort((x,y) => arr2Names.indexOf(x.name) - arr2Names.indexOf(y.name))
console.log(arr1, arr2)
var arr2 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
var arr1 = ['b', 'd', 'g', 'f', 'e', 'a', 'c']
console.log(arr1.sort((x,y) => arr2.indexOf(x) - arr2.indexOf(y)))
https://stackoverflow.com/questions/51006447
复制相似问题