【发布时间】:2015-05-15 20:16:02
【问题描述】:
我知道当找不到值时我会省略 -1 选项,但是为什么当值在数组中时它不起作用?它应该返回 1,但返回的是 undefined。
function each(collection, callback) {
if (Array.isArray(collection)) {
for (var i = 0; i < collection.length; i++) {
callback(collection[i], i, collection);
}
}
else {
for (var prop in collection) {
callback(collection[prop], prop, collection);
}
}
}
function indexOf(array, value) {
each(array, function(e, index) {
if (e === value) {
return index;
}
})
}
console.log(indexOf([1, 2, 3, 4, 5], 2)); ---->>> undefined;
【问题讨论】:
-
为什么要重新发明轮子?最新浏览器支持Array.prototype.indexOf()
-
javascript基础练习
-
公平地说,如果修复,这将不会与原生 indexOf 做同样的事情:这个版本还允许您发现第一个具有指定值的属性(“索引”)目的。当然,那么您可能会遇到非保证属性迭代顺序的问题。
标签: javascript