一种返回由键值对组成的对象的方法



任务描述:编写一个返回由键值对组成的对象的方法。预期结果:[['a',1],['b',2]]=>{a:1,b:2}任务复杂性:第2个,共5个@param{Array}Array-成对的深层数组@返回{Array}。我提出了解决方案,但没有返回{[key]:value}。

const fromPairs = (array) => {
array.forEach((element) => {
if (Array.isArray(element)) {
const [key, value] = element;
return { [key]: value };
}
});
};
const data3 = [
["a", 1],
["b", 2],
];
console.log(fromPairs(data3)); // { 'a': 1, 'b': 2 }

有一个内置方法Object.fromEntries:

const data3 = [
["a", 1],
["b", 2],
];
const object = Object.fromEntries(data3);

但如果重点是手动操作,我会选择Array.prototype.reduce:

const object = data3.reduce(
(carry, [key, value]) => ({
...carry,
[key]: value,
}),
{}
);

您可以通过只遍历外部数组并根据内部数组的预期索引号创建对象来简化此过程。然后在forEach循环完成后返回对象:

const data3 = [['a', 1],['b', 2]]
function fromPairs(arr) {
const obj = {}
arr.forEach(el => {
if(Array.isArray(el)) {
obj[el[0]] = el[1]
}
})
return obj
}
console.log(fromPairs(data3))

最新更新