牛客网前端编程:在数组 arr 中,查找值与 item 相等的元素出现的所有位置

    //第一种方法:filter
        function findAllOccurrences(arr, target) {
            var result = [];
            arr.filter(function (item,index) {
                return item===target && result.push(index);
            });
            return result;
        }    
        //第二种方法:forEach
        function findAllOccurrences1(arr, target) {
            var result = [];
            arr.forEach(function (item,index) {
                if (item===target) {
                    result.push(index);
                }
            });
            return result;
        }    
         //第三种方法
        function findAllOccurrences3(arr, target) {
            var result = [];
            //获取查找元素在数组中的最后一个索引
            var index = arr.lastIndexOf(target);
            //如果这个索引存在,则将其索引放入结果数组中,并且删除该索引位置的元素,继续遍历数组,直到数组中不再存在这个元素
            while(index > -1) {
                result.push(index);
                arr.splice(index,1);
                index = arr.lastIndexOf(target);
            }
            return result;
        }        

一些函数的总结:

     //splice :增加或者删除元素,参数为0时是增加,参数为1时是替换,参数大于1时是删除
        //slice:选取数组中元素,当为一个参数时,选取的元素从这个参数到数组末尾;两个参数时则选取的元素从起始参数到结束参数
        //split:分割数组,当只有一个参数时,从该参数分割数组,若有两个参数,则从第一个参数位置分割相应的个数
        //filter:过滤数组,参数包括(当前值,当前索引,当前数组,给该数组设置的初始值)
        //foreach:参数包括(当前值,当前索引,当前数组,给该数组设置的初始值)
        //eval:计算某个字符串 参数为所要计算的字符串
        //reduce:计算元素相加后总和  参数包括(初始参数,当前值,当前索引,当前数组,初始参数值)

 

posted @ 2019-07-29 13:51  紫色,风铃  阅读(956)  评论(0编辑  收藏  举报