我希望我的第二个数组按id第一个数组中的属性排序。
这是我的数组
第一个数组
data :
items:
0: {id: 14, attributes: Array(1)}
1: {id: 8, attributes: Array(1)}
2: {id: 4, attributes: Array(1)}
3: {id: 1, attributes: Array(2)}
4: {id: 2045, attributes: Array(2)}
Run Code Online (Sandbox Code Playgroud)
第二个数组
data :
items:
0: {id: 1, name: "test Product 1"}
1: {id: 4, name: "test Product 1"}
2: {id: 8, name: "test Product 1"}
3: {id: 14, name: "test Product 1"}
4: {id: 2045, name: "test Product 1"}
Run Code Online (Sandbox Code Playgroud)
我是这样试的:
但我似乎无法让它工作。我知道这被问了很多,但我就是想不通。
洛达什
sorted = _.sortBy(items1, x => _.findIndex(items2, y => x.id === y.id))
Run Code Online (Sandbox Code Playgroud)
如果您的数组相当长,则先构建索引,然后按该索引排序可能更有效:
index = _.fromPairs(_.map(items2, (x, i) => [x.id, i]));
sorted = _.sortBy(items1, x => index[x.id])
Run Code Online (Sandbox Code Playgroud)