题目描述
找出元素 item 在给定数组 arr 中的位置
输出描述:
如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1
示例1
输入
[ 1, 2, 3, 4 ], 3
输出
2
1.利用arr.indexOf(item),返回arr中第一个item的索引,如果不存在,则返回-1。
function indexOf(arr, item) {
return arr.indexOf(item);
}
2.若浏览器不支持indexOf,就用for遍历。(此处不能用forEach,否则每个元素都遍历,然后返回-1)
function indexOf(arr, item) {
if (Array.prototype.indexOf){
return arr.indexOf(item);
}
else {
for (var i = 0; i < arr.length; i++){
if (arr[i] === item){
return i;
}
}
}
return -1;
}
3. 若arr中的数据类型为对象、数组等,如 [{xixi: 1}, '1', 1, true, [1,2]],就用JSON.stringify()将js对象转换为字符串
function indexOf(arr, item) {
if (!arr || !arr.length) {
return -1;
}
for (var i = 0, len = arr.length; i < len; i++) {
// 支持 arr[i] 为对象,数组等
if (JSON.stringify(arr[i]) === JSON.stringify(item)) {
return i;
}
}
return -1;
}