给定一个有效的属性标识符数组和一个值的数组,返回一个将属性关联到值的对象。
由于一个对象可以有未定义的值,但不存在未定义的属性,该属性数组用于使用 Array.reduce()
来决定结果对象的结构。
const zipObject = (props, values) => props.reduce((obj, prop, index) => ((obj[prop] = values[index]), obj), {});
zipObject(['a', 'b', 'c'], [1, 2]); // {a: 1, b: 2, c: undefined} zipObject(['a', 'b'], [1, 2, 3]); // {a: 1, b: 2}