有沒有找到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"
有沒有找到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"
您可以使用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
)
如果找到多個對象或找不到對象,會發生什麼情況;我會假設有一個錯誤條件? –
@DavidThomas:如果多於一個,它返回第一個...如果沒有元素被找到返回'undefined' –
如果它沒有返回任何錯誤,則返回錯誤 – epascarello
你在哪裏卡住?使用['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)應該足以做到這一點。 –
如果找到或不存在,filter()和map()都會遍歷數組 – user9247