我有一个对象数组,该数组包含差异名称。
[ "Foo", "Bar", "Test", "Other" ];
还有另一个对象数组
[ { name:"Bar", value: 159 }, { name: "Foo", value: 120 }, { name: "Other", value: 1230 } ]
我需要创建一个数组,新数组包含大小为2的子数组,第一个索引是名称,第二个索引是值。数组的顺序必须与第一个(名称数组)的顺序相同。
喜欢
[ ["Foo", 120], ["Bar", 159], ["Test", undefined], ["Other", 1230] ]
所以我尝试了这段代码,但是我的输出不正确。名称顺序正确,但值顺序不正确。
var order = ["Foo", "Bar", "Test", "Other"];
var values = [{ name: "Bar", value: 159 }, { name: "Foo", value: 120 }, { name: "Other", value: 1230 }];
var array = order.map(function(name, i) {
return [name, (values[i] && values[i].value) ];
})
console.log(array)
看看我的解决方案。希望这可以帮助。
const a = [ "Foo", "Bar", "Test", "Other" ];
const b = [ { name:"Bar", value: 159 }, { name: "Foo", value: 120 }, { name: "Other", value: 1230 } ];
const res = a.map((item) => [ item, (b.find(({ name }) => name === item) || {}).value ])
console.log(res)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句