javascript - 我怎样才能返回 foreach javascript 中的值

标签 javascript arrays reactjs sorting ecmascript-6

我有一个函数需要返回一个国家/地区的 ID。

我的列表是一个对象数组:

{
    id: 2,
    code: "AL",
    name: "Albania"
}...

这是我从国家/地区获取所需 ID 的函数

getCountryID(countryName) {
            return country_list_with_id.forEach(res => {
                if (res.name.toLowerCase() === countryName) {
    console.log("the id is",res.id)// the log is 143
                    let id = res.id;
                    return id;
                }
            });
        }
    console.log(array.getCountryID("USA"))//undefined

那么我怎样才能得到id呢?

最佳答案

你不能。 forEach 并不打算返回任何内容,但您可以使用另一个函数从数组中获取 id

使用find将返回一个满足您条件的对象。

getCountry(countryName) {
    return country_list_with_id.find(item => item.name.toLowerCase() === countryName);
}

这将返回country对象,您可以从该对象注入(inject)ID。如果没有找到任何内容,则返回undefined。因此,您需要首先检查该对象,然后尝试访问其属性。

const country = array.getCountry("USA");

console.log(country && country.id);

关于javascript - 我怎样才能返回 foreach javascript 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49191974/

相关文章:

c++ - 我怎样才能拥有一个以二维数组作为参数的函数,而该数组有一个我想更改的参数/维度?

java - 我怎样才能获取这个json数据

c++ - 字符串连接期间可能的缓冲区溢出

javascript - React 组件 onClick 处理程序不起作用

javascript - 需要加密在数据库中存储值

javascript - 随机边框颜色

c# - Modal RadWindow 未在 Chrome 中关闭

javascript - 从浏览器将约会写入 iOS 日历

reactjs - 为什么我在 React 中使用 "no overload matches this call"会得到 "useInfiniteQuery"?

来自 SQL Server 的 JavaScript 日期 : Codeigniter