gpt4 book ai didi

javascript - 在数组上调用 forEach 时出错

转载 作者:行者123 更新时间:2023-12-03 10:26:05 25 4
gpt4 key购买 nike

我在另一个 forEach 函数中遇到了 forEach 问题:

results 变量包含一个如下对象:

{
names: [
'Someone',
'Someone else'
],
emails: [
'someone@someemail.com'
'something@somemail.com'
]
}

我希望它展开所有数组并产生如下所示的数组:

[
{term: 'Someone', type: 'names'},
...
]

这是我的代码:

var keys = _.keys(results);

console.log(keys);

var finalResult = [];

keys.forEach( function (key) {

var arrTerms = results[key];

console.log(key, arrTerms); //arrTerms prints fine

arrTerms.forEach(function (term) { //This line throws an exception

finalResult.push({
term: term,
type: key
});
});

});

对 forEach 的嵌套调用引发以下异常:

TypeError: Uncaught error: Cannot call method 'forEach' of undefined

我尝试使用 for 循环迭代直到长度,但它生成了另一个异常:

TypeError: Uncaught error: Cannot read property 'length' of undefined

最佳答案

我认为这里的问题是您可能会为 arrTerms 分配 undefined (当 results[key] 返回 undefined 时,因为您采用的键不包含在对象中)。尝试这样做:

var keys = _.keys(results);

console.log(keys);

var finalResult = [];

keys.forEach( function (key) {
if(results[key] != undefined){
var arrTerms = results[key];

arrTerms.forEach(function (term) { //This line throws an exception
console.log(key, arrTerms); //arrTerms prints fine
finalResult.push({
term: term,
type: key
});
});
}
});

关于javascript - 在数组上调用 forEach 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29395410/

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