我有两个数组,一个是字符串类型,第二个是数字类型。如何有条件地将这些组合为键值对象。
例如:
var fruits = [
"Apple",
"Banana" ,
"Apricot",
"Bilberry"
]
var count = [3,5,0,2]
我想将 fruits
和 count
数组组合为键值对象,并且哪个计数不是 0
预期:
var merge = [{"Apple":3},{"Banana" :5},{"Bilberry":2}]
我尝试过的是:
var merge = _.zipObject(["Apple","Banana" ,"Apricot","Bilberry"], [3,5,0,2])
结果是:
{"Apple":3,"Banana":5 ,"Apricot":0,"Bilberry":2}
最佳答案
尝试使用 filter
、Object.values
和 map
来尝试这个普通的 js 解决方案
var output = count.map((s, i) => ({
[fruits[i]]: s
})).filter(s => Object.values(s)[0]);
演示
var fruits = [
"Apple",
"Banana",
"Apricot",
"Bilberry"
];
var count = [3, 5, 0, 2];
var output = count.map((s, i) => ({
[fruits[i]]: s
})).filter(s => Object.values(s)[0]);
console.log(output);
关于javascript - 有条件地将字符串和数字数组组合为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425505/