gpt4 book ai didi

使用 lodash forEach 的 Javascript 函数返回未定义

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

我正在编写一个 ReactJS 应用程序,并且在函数 filterSelected 中有一个 for 循环,该循环遍历区域名称数组(例如["Thailand", "Malaysia"] )并应返回其相应区域代码的数组(例如["TH", "MY"])。

在我的 mapRegionToCode 函数中,它通过对象的对象来进行此映射,并且控制台日志正确打印​​相应的区域代码,但是该函数返回 undefined .

任何想法,我们将不胜感激!

mapRegionToCode(region) { // region = "Thailand"
_.forEach(_.values(this.props.regionsCodes), regionCode => {
if(regionCode.country.countryName === region) {
console.log(regionCode.country.countryCode); //"TH"
return regionCode.country.countryCode;
}
});
}

filterSelected(filters) {
...
for(let i = 0; i < regionsArray.length; i++){
const regionCode = this.mapRegionToCode(regionName);
console.log(regionCode); //undefined
regionNames.push(regionCode);
}
...
}

最佳答案

更新

我读到了你想做的错事。您需要执行以下操作:

  1. 通过 country.countryName === Region 查找区域代码
  2. 返回其country.countryCode

使用 lodash,您可以执行以下操作:

mapRegionToCode(region) {
return _.find(_.values(this.props.regionsCodes),regionCode => regionCode.country.countryName === region).country.countryCode
}

原始答案

您忘记在 mapRegionToCode 函数中添加 return:

mapRegionToCode(region) { // region = "Thailand"
return _.map(_.values(this.props.regionsCodes), regionCode => {
if(regionCode.country.countryName === region) {
console.log(regionCode.country.countryCode); //"TH"
return regionCode.country.countryCode;
}
});
}

(此外,您需要使用_.map而不是_.forEach)

关于使用 lodash forEach 的 Javascript 函数返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53536781/

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