如何创建自定义查找方法



我正在尝试使用Array.prototype创建自定义查找方法,我尝试了很多方法,但我就是无法打破第一个匹配的循环:

let arr = ["Bill", "Russel", "John", "Tom", "Eduard", "Alien", "Till"];
Array.prototype.myFind = function (callback) {
for (let i = 0; i < this.length; i++) {
callback(this[i], i, this);
}
};
arr.myFind((element, index, array) => {
if (element[0] === "T") {
console.log(`This is ${element} in index of ${index} in array ${array}`);
}
});

现在你只有一个for循环,如果你想找到任何满足条件的元素,你必须从回调中返回一个布尔值并返回元素,返回的布尔值是true。如果你想返回找到的元素的索引和初始数组,你可以返回一个对象并对其进行销毁:

let arr = ["Bill", "Russel", "John", "Tom", "Eduard", "Alien", "Till"];
Array.prototype.myFind = function (callback) {
for (let i = 0; i < this.length; i++) {
if ( true == callback(this[i], i, this)) {
return {element:this[i],index:i,array:this};
}
}
};
let {element,index,array} = arr.myFind((element) => element[0] === "T");
console.log(`This is ${element} in index of ${index} in array ${array}`);

最新更新