javascript - 有条件地将字符串和数字数组组合为对象数组

标签 javascript arrays react-native lodash

我有两个数组,一个是字符串类型,第二个是数字类型。如何有条件地将这些组合为键值对象。

例如:

var fruits = [
  "Apple",
  "Banana" ,
  "Apricot",
  "Bilberry"
]

var count = [3,5,0,2]

我想将 fruitscount 数组组合为键值对象,并且哪个计数不是 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}

最佳答案

尝试使用 filterObject.valuesmap 来尝试这个普通的 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/

相关文章:

javascript - 在 Angular JS或深度中获取选定的节点路径或深度 TreeView

javascript - 尝试使用箭头语法重写它

python - np.log() 和 np.diff() 的逆运算是什么?

javascript - 如何将函数应用于两个数组(数组的数组)的第 n 个元素?

react-native - react-native Facebook注销

ios - 新的 react-native ios 应用程序没有构建?

php - 如何通过单击提交来发布两个表单

javascript - 如果 ng-model 为真 AngularJS 则滚动到元素 ID

javascript - 有没有更有效的方法来写这个?

ios - react 导航重置操作不起作用