2016-09-12 29 views
-2

有沒有找到X的元素,然後返回Y有沒有一種方法可以通過X找到元素,然後返回Y?

例如:

[{id: 0, name: "bob"} 
,{id: 1, name: "alice"} 
,{id: 2, name: "john"} 
].find_xxx((v) => v.id == 1 && v.name); 
# => "alice" 
+1

你在哪裏卡住?使用['Array.prototype.filter()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)和['Array.prototype.map( )'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)應該足以做到這一點。 –

+0

如果找到或不存在,filter()和map()都會遍歷數組 – user9247

回答

2

您可以使用Array#find方法,它返回基於測試功能的元件,後來從返回的對象中獲取name屬性。

var obj = [{ 
 
    id: 0, 
 
    name: "bob" 
 
}, { 
 
    id: 1, 
 
    name: "alice" 
 
}, { 
 
    id: 2, 
 
    name: "john" 
 
}].find(v => v.id == 1); 
 

 
console.log(
 
    obj && obj.name 
 
)

+0

如果找到多個對象或找不到對象,會發生什麼情況;我會假設有一個錯誤條件? –

+0

@DavidThomas:如果多於一個,它返回第一個...如果沒有元素被找到返回'undefined' –

+1

如果它沒有返回任何錯誤,則返回錯誤 – epascarello

相關問題