我正在尝试从希望用作新对象键的值数组中构建一个空数组对象。
const FILTERS = ['foo', 'bar', 'baz']
createFilteringObject() === { foo: [], bar: [], baz: []}
function createFilteringObject() {
const filterObj = {}
for (const filterCategory of FILTERS) {
filterObj[filterCategory] = [];
}
return filterObj;
}
我想提高我的ES6知识。有人能整齐地做到这一点吗?
答案 0 :(得分:2)
FILTERS.reduce((a,b) => Object.assign(a, { [b]: []}), {})
答案 1 :(得分:0)
您也可以使用新的Object.fromEntries(),但请确保选中browser compatibility。结合Array.map()可以完成以下任务:
const FILTERS = ['foo', 'bar', 'baz'];
let res = Object.fromEntries(FILTERS.map(x => [x, []]));
console.log(res);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
答案 2 :(得分:0)
如果您对ES6以后的版本感到满意,请使用Object.fromEntries
:
Object.fromEntries(FILTER.map(key => [key, []]))