gpt4 book ai didi

javascript - 使用相同的代码迭代并访问数组和对象元素

转载 作者:行者123 更新时间:2023-12-01 02:16:57 25 4
gpt4 key购买 nike

假设我有一个接收对象或数组的函数。我想迭代每个元素,并对每个元素做一些事情。我知道我可以使用 forEach() 或普通的 for 循环来迭代数组。我还可以使用 a for in loop 迭代对象和数组。但与数组情况不同,我必须使用 hasOwnProperty() 检查对象的元素。

我可以将一些通用代码应用于数组和对象吗?

更新。这是我对一些名为 value 的对象/数组的尝试,但没有针对该对象情况出现控制台消息:

keysArray = Object.keys(value);
for(let key in keysArray) {
console.log(value[key])
}

最佳答案

你可以使用

function* entries(o) {
if (Array.isArray(o))
for (let i=0; i<o.length; i++)
yield [i, o[i]];
else
for (const p in o)
yield [p, o[i]];
}
// or using builtin iterators:
function entries(o) {
return Array.isArray(o) ? o.entries() : Object.entries(o).values();
}

并将其命名为

for (const [key, value] of entries(something)) {
console.log(key, value);
}

当然,您可以执行类似的操作来仅获取键或仅获取值。

关于javascript - 使用相同的代码迭代并访问数组和对象元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441441/

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