題目描述:
找出元素 item 在給定數組 arr 中的位置
輸出描述:
如果數組中存在 item,則返回元素在數組中的位置,否則返回 -1
輸入:[ 1, 2, 3, 4 ], 3
輸出:2
indexOf()方法返回在數組中可以找到一個給定元素的第一個索引,如果不存在,則返回-1。
function indexOf(arr,item){
if(Array.prototype.indexOf){ //因為老IE是沒有indexOf這個方法的,所以要先判斷
return arr.indexOf(item);
}else{
for(var i=0;i<arr.length;i++){
if(arr[i]===item){
return i;
}
}
}
return -1;
}
方法2:
支持數組arr中的數據類型為對象, 數組, 等。
eg: var arr = [{age: 1}, '1', 2, true, [1,2]], 依然可以測試
JSON.stringify()方法將JavaScript對象轉換為字符串
/**獲取元素位置***/
function indexOf(arr,intem){
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;
}
鏈接:https://www.nowcoder.com/questionTerminal/e7835a8113dd48afb15f77ef8d1dcb1d
來源:牛客網