[英]Array.prototype.find to search an Object in an Array
我正在使用Array.prototype.find來搜索數組中的Object Person。 我想用id來找到這個Object。 我一直在閱讀方法find(ES6),但我不知道為什么我的代碼錯了。
這是我的代碼:
AddresBook.prototype.getPerson = function (id) {
return this.lisPerson.find(buscarPersona, id);
};
function buscarPersona(element, index, array) {
if (element.id === this.id) {
return element;
} else
return false;
}
您將id
作為thisArg
參數直接傳遞給.find()
,但在buscarPersona
您希望this
是一個具有.id
屬性的對象。 所以要么
傳遞一個對象:
lisPerson.find(buscarPersona, {id}); function buscarPersona(element, index, array) { return element.id === this.id; }
使用this
直接:
lisPerson.find(buscarPersona, id); function buscarPersona(element, index, array) { // works in strict mode only, make sure to use it return element.id === this; }
只是通過關閉
lisPerson.find(element => element.id === id);
可以在AddressBook's
Prototype中添加一個臟的解決方案last_id
。
所以你的代碼如下
AddressBook.prototype.getPerson = function(id){
this.last_id = id;
return this.lisPerson.find(buscarPersona,this);
}
function buscarPersona(element){
if(element.id === this.last_id){
return element;
}else{
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.