首页 > 试题广场 >

查找元素位置

[编程题]查找元素位置
  • 热度指数:72583 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在数组 arr 中,查找值与 item 相等的元素出现的所有位置
示例1

输入

['a','b','c','d','e','f','a','b','c'] 'a'

输出

[0, 6]
return arr.reduce((i,val,index)=>(val==target&&i.push(index),i),[])
发表于 2023-05-13 08:50:31 回复(0)
 let Array = []
            for(let i = 0; i < arr.length; i++){
                if(arr[i] == target){
                    Array.push(i)
                }
            }
            return Array
发表于 2023-05-09 14:04:10 回复(0)
function findAllOccurrences(arr, target) {
    let i = 0
    return arr.reduce(function(sum, cur){
        sum = cur === target ? [...sum, i] : sum
        i++
        return sum
    }, [])
}

发表于 2023-05-05 16:03:10 回复(0)
function findAllOccurrences(arr, target) {
    var a=[]
    while(arr.indexOf(target)!=-1){
        a.push(arr.indexOf(target));
        arr[arr.indexOf(target)]=target+1;
    }
    return a;
}
用indexof的一种方法,但是要改变原数组

发表于 2023-03-19 19:59:44 回复(0)
function findAllOccurrences(arr, target) {
    var index = [];
    arr.forEach((i,ind)=>{
        if(i===target){
            index.push(ind)
        }
    })
    return index
}
发表于 2022-11-18 14:14:29 回复(0)
findIndex方法
function findAllOccurrences(arr, target) {
    var indexArr = []
    arr.findIndex((item,index) => {
        if(item === target){
            indexArr.push(index)
        }
    })
    return indexArr
}

发表于 2022-11-14 09:09:02 回复(0)
function findAllOccurrences(arr, target) {
    let arr1 = []
    arr.forEach((val,i)=>{
        if(val == target) arr1.push(i)
    })
    return arr1
}
发表于 2022-09-30 17:04:44 回复(0)
function findAllOccurrences(arr, target) {
    return arr.map((item, index) => {
        if (item === target) {
            return index
        }
    }).filter(item => item || item === 0)
}
发表于 2022-08-30 18:45:35 回复(0)
function findAllOccurrences(arr, target) {
    let a = []
    for(let i = 0; i < arr.length; i++) {
        if(arr.indexOf(target,i) !== -1) {
            a.push(arr.indexOf(target,i))
        }
    }
    let b = new Set(a)
    return [...b]
}

发表于 2022-07-19 15:40:02 回复(0)
// 第一种,for
function findAllOccurrences(arr, target) {
    const result = []
    for (let idx = 0, len = arr.length; idx < len && arr.slice(idx).includes(target); idx++) {
        if (arr[idx] === target) {
            result.push(idx)
        }
    }
    return result
}
// 第二种,递归
function findAllOccurrences(arr, target, fromIdx = 0) {
    const idx = arr.indexOf(target, fromIdx)
    if (idx < 0) {
        // 没找到
        return []        
    }
    return [idx, ...findAllOccurrences(arr, target, idx+1)]
}



发表于 2022-07-16 18:54:18 回复(0)
function findAllOccurrences(arr, target) {
    var res = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] == target) {
            res.push(i);
        }
    }
    return res;

}

发表于 2022-07-11 21:20:24 回复(0)
function findAllOccurrences(arr, target) {
    //在数组 arr 中,查找值与 item 相等的元素出现的所有位置
    
    /*for...in +push*/
    let a=[];
    for(let i in arr){
        if(arr[i]==target){
            a.push(i);
        }
    }
    return a;
    
    /*filter()方法*/
    let res=[];
    arr.filter((item,index)=>{
        return item===target&&res.push(index);
    });
    return res;
    
    //indexOf(searchValue[,start]):
    let res=[];
    let index=arr.indexOf(target);
    while(index!=-1){
        res.push(index);
        index=arr.indexOf(target,index+1);
    }
    return res;
}

发表于 2022-07-09 16:57:40 回复(0)
function findAllOccurrences(arr, target) {
    let s = []
    arr.forEach(
        (e, index) => {
            if (e == target) {
                s.push(index)
            }
        }
    )
    return s
}

发表于 2022-06-18 17:35:15 回复(0)
function findAllOccurrences(arr, target) {
    var arr2 = []
    arr.forEach((el,index,arr)=>{
        if(el === target){
            arr2.push(index)
        }
    })
    return [...new Set(arr2)]
}

发表于 2022-06-11 23:45:31 回复(0)
function findAllOccurrences(arr, target) {
    //for   
    var newArr=[]
    for(let i =0 ;i<arr.length;i++){
        if(arr[i]==target){
            newArr.push(i)
        }
    }
    return newArr;
   //indexOf
    var temp=arr.indexOf(target);
    var newArr=[];
    while(temp>-1){
        newArr.push(temp);
        temp=arr.indexOf(target,temp+1);
    }
    return newArr;
    
    //fliter
    var newArr=[];
    arr.filter(function(item,index){
    return item===target&&newArr.push(index);
    });
    return newArr; 
}

发表于 2022-05-24 13:05:25 回复(0)
function findAllOccurrences(arr, target) {
    let r = []
    for(let i in arr){
        if(arr[i] === target){
            r.push(i)
        }
    }
    return r
}
发表于 2022-05-22 16:01:44 回复(0)
function findAllOccurrences(arr, target) {
var arr2=[];
    var index = 0;
    while(arr.indexOf(target,index)!=-1){
          
         index = arr.indexOf(target,index);
         arr2.push(index);
         index++;
    
    }
  
     return arr2;  
    
}
发表于 2022-05-18 18:12:05 回复(0)
function findAllOccurrences(arr, target) {
    return arr.map(function(val,index){
        if(val===target){
            return index
        }
    })

}
发表于 2022-04-27 13:55:43 回复(0)

问题信息

难度:
53条回答 27334浏览

热门推荐

通过挑战的用户

查看代码