gpt4 book ai didi

javascript - 从数组中的键构造一个对象

转载 作者:行者123 更新时间:2023-12-03 00:56:06 25 4
gpt4 key购买 nike

例如,如果我们有一个现有的对象

const mainObject = {
title: 'some title',
topics: {
topic1: {
path: '',
id: 1
},
topic2: {
path: '',
id: 2
}
}
}

我有一个函数可以获取包含键的数组例如

const arrayOfKeys = ['topics', 'topic1'];

function getObjectByKeys(arrayOfKeys) {
// problem is length of the array may change
const myObject = mainObject[arrayOfKeys[0]][arrayOfKeys[1]];
return myObject;
}

函数应该返回

{
path: '',
id: 1
}

最佳答案

您可以在此处使用.reduce。使用主对象初始化累加器,并在其回调的每次迭代中返回与当前键对应的值。

const mainObject = {
title: 'some title',
topics: {
topic1: {
path: '',
id: 1
},
topic2: {
path: '',
id: 2
}
}
}

const arrayOfKeys = ['topics', 'topic1'];

function getObjectByKeys(arrayOfKeys) {
return arrayOfKeys.reduce((a, el, i, arr) => {
return a[el] || {};
}, mainObject);
}

console.log(getObjectByKeys(arrayOfKeys));

关于javascript - 从数组中的键构造一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52834999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com