我有對象的數組:JavaScript函數可以CONSOLE.LOG值,但不會返回它
let array = [
{
id: 0,
name: "Name0"
},
{
id: 1,
name: "Name1"
}
]
和功能,通過數組迭代,搜索對象具有指定ID屬性,而應返回對象名稱屬性:
function getName1(id) {
array.map((object) => {
if(object["id"] === id)
return object["name"]
})
}
但是這個代碼
console.log(getName1(0)) // undefined
回報不確定
如果我只是CONSOLE.LOG對象的名稱在函數內部
function getName2(id) {
array.map((object) => {
if(object["id"] === id)
console.log(object["name"])
})
}
它工作完全正常:
getName2(0) // "Name1"
我基本上只是想
getName1(0)
返回
Name0
我該如何做到這一點?
請僅使用合適的標籤。這與[tag:asynchronous]或[tag:undefined]無關,可以說與[tag:return]無關。 –
您的函數getName1不返回任何內容。 return語句不在getName1函數中。你需要迭代數組來尋找匹配,然後返回該值。我不認爲地圖是你想要的。查看減少或只是迭代數組 – terpinmd