合并对象内的所有数组
Merge all arrays inside of an object
let fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
let allFruits = fruit.apple.concat(fruit.orange).concat(fruit.banana);
我可以做这样的事情,但是如果我有 20 个水果怎么办...还有其他方法可以使用 lodash 吗?
这里不需要使用lodash。您需要做的就是获取所有对象值的列表(Object.value()), then flatted it (with yourArray.flat())
let fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
console.log(Object.values(fruit).flat())
为了完整起见,以下是使用 lodash 的方法:
_.flatMap(fruit)
是的,就这么简单。这里有两个隐藏的技巧:
这是另一个使用 .reduce()
的 vanilla JS 解决方案。
const fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
console.log(Object.values(fruit).reduce((t, c) => t.concat(...c), []));
let fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
let allFruits = fruit.apple.concat(fruit.orange).concat(fruit.banana);
我可以做这样的事情,但是如果我有 20 个水果怎么办...还有其他方法可以使用 lodash 吗?
这里不需要使用lodash。您需要做的就是获取所有对象值的列表(Object.value()), then flatted it (with yourArray.flat())
let fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
console.log(Object.values(fruit).flat())
为了完整起见,以下是使用 lodash 的方法:
_.flatMap(fruit)
是的,就这么简单。这里有两个隐藏的技巧:
这是另一个使用 .reduce()
的 vanilla JS 解决方案。
const fruit = {
apple: [1, 2],
orange: [3, 4],
banana: [5, 6],
};
console.log(Object.values(fruit).reduce((t, c) => t.concat(...c), []));