gpt4 book ai didi

javascript - 如何访问多级对象数组?

转载 作者:行者123 更新时间:2023-12-03 04:34:32 24 4
gpt4 key购买 nike

通过查看“Array”图像,我如何访问该数组的所有级别?

我尝试执行 foreach,但这只允许我访问第一个对象,而无法访问填充字符串的第二个对象。

    for (var key in result)
{
if (result.hasOwnProperty(key))
{
console.log(key, result[key]);

for(var item in result[key])
{
console.log(item);
}
}
}

我也尝试过:

result[key[item]]

但它似乎未定义。

我知道通过名称访问所有元素很容易,但名称不断变化,因此解决方案应该是动态的。

我在评论中添加了演示以查看行为。

最佳答案

Object.keys(obj) 返回 obj 中键的数组。

var obj = {
a: 1,
b: 2,
m: 3,
x: 4,
y: 5,
z: 6
}

//get all the keys in an array:
var keys = Object.keys(obj)
console.log("keys: " + keys);

//iterate through the object by its keys:
for (var i = 0; i < keys.length; i++){
console.log("key " + keys[i] + " has value " + obj[keys[i]]);
}

根据您的评论进行更新

我认为您要求将此解决方案应用于任意深度的对象。我的解决方案是将前面的技巧包装在一个函数中,并在存在嵌套对象时递归调用它:

var obj = {
a: {foo:"bar",foof:"barf"},
b: 2,
m: 3,
x: {baz:{really:{more:{objects: "yeah, there could be a lot"}}}},
y: 5,
z: 6
}

function getKeysDeep(obj,prefix){
//get all the keys in an array:
var keys = Object.keys(obj)
//console.log(prefix + "keys: " + keys);

//iterate through the object by its keys:
for (var i = 0; i < keys.length; i++){
if (obj[keys[i]] !== null && typeof obj[keys[i]] === 'object') {
console.log("key " + keys[i] + "'s value is an object");
getKeysDeep(obj[keys[i]],prefix + keys[i] + ": ");
} else {
console.log(prefix + "key " + keys[i] + " has value " + obj[keys[i]]);
}
}
}

getKeysDeep(obj,"")

关于javascript - 如何访问多级对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43353178/

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