JS操作数组-2

1. 找出数组 arr 中重复出现过的元素

function duplicates(arr) {
    var result = [];
    var count = [];
    for (var i=0;i<arr.length;i++) {
        if(count[arr[i]]) {//count用来记录数组中元素出现的次数,key是元素,value是次数。
            count[arr[i]]++;
        }
        else {
            count[arr[i]]=1;
        }
    }
    for (var i=0;i<count.length;i++) {
        if (count[i]>1) {
            result.push(i);//这里要传入的是元素也就是key
        }
    }
    return result;
}
function duplicates(arr) {
 var result = [];
    arr.forEach(function(elem){
       if(arr.indexOf(elem) !=arr.lastIndexOf(elem) && result.indexOf(elem) == -1){
           result.push(elem);
       }
    });
    return result;
}

2. 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组

function square(arr) {
    var result = [];
    arr.forEach(function(e) {
        result.push(e*e);
    });
    return result;
}
function square(arr) {
    return arr.map(function(e) {
        return e*e;
    });
}

3. 在数组 arr 中,查找值与 item 相等的元素出现的所有位置

function findAllOccurrences(arr, target) {
    var result = [];
    arr.forEach(function(item,index,arr) {
        if (item==target) {
            result.push(index);
        }
    });
    return result;
}
  参考别人的:function findAllOccurrences(arr, item) {
        return arr.map(function(e, index) {
            return e === item ? index : -1;
            /* 样例返回结果为[ -1, -1, -1, -1, -1, -1, -1, 0, 6 ] */
        }).filter(function(i) {
            return i !== -1;
            /* 过滤掉 i === -1 的情况 */
        })
    }
// ES6箭头函数版
    const findAllOccurrences = (arr, item) =>
        arr.map((e, index) => e === item ? index : -1)
           .filter(i => i !== -1);
这个比较简洁的也可以实现。function findAllOccurrences(arr, target) {
    return arr.map(function(item,index,arr) {
        if (item==target) {
            return index;
        }
    });
}

4.

原文地址:https://www.cnblogs.com/sarah-wen/p/10753442.html

时间: 2025-01-06 18:13:34

JS操作数组-2的相关文章

JS 操作数组的方法

1.检测数组 (判断一个值是不是数组) var color = ["red", "green", "blue"]; (1) if (color instanceof Array) {} (2) if (Array.isArray(value)) {} 2.转换方法 var color = ["red", "green", "blue"]; (1) toString()/toLocalSt

js操作数组

JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素. 要取得Array的长度,直接访问length属性: var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6 请注意,直接给Array的length赋一个新的值会导致Array大小的变化: var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, unde

js 操作数组

原始数组alert("原始数组:" + arr);// 1,2,3,4,5 删除并且返回第一个元素alert("执行arr.shift() 返回 :" + arr.shift());//1alert("数组:" + arr);//2,3,4,5 删除并且返回最后一个元素alert("执行arr.pop() 返回:" + arr.pop());//5alert("数组:" + arr);//2,3,4 在数组

js操作数组的小Demo

var telStr=$("#TELNUM").val(); var telsPre=telStr.split(","); var tels=telsPre.reverse(); var size = tels.length; for(var i=0; i<size; i++){ if(""!=tels[i]) { var index=0; if(i==0){ d["CUSTOMER_TEL"] =tels[i]; in

js操作数组分类

var aa = [ { id: 1, imei: '', store_name: '合肥店' }, { id: 3, imei: '3', store_name: '合肥店' }, { id: 2, imei: '1', store_name: '芜湖店' }, { id: 4, imei: '34343', store_name: '上海店' } ]; 分类 一 var list = aa, flag = 0, data = []; for(var i = 0; i< list.length

js,jQuery数组常用操作小结

一.js中数组常用操作小结 (1) shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); 结果 a:[2,3,4,5] b:1 (2) unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); 结果 a:[-2,-1,1,2,3,4,5] b:7 注:在IE6.0下测试返回值总为undefi

js中数组操作

var selectedCodeArray = []; var num = $.inArray(值, selectedCodeArray)  //值在数组中的位置 selectedCodeArray.push(值码); selectedCodeArray.splice(num, 1);//从数组中删除 js中数组操作,布布扣,bubuko.com

js的数组操作

用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一下狠心,我学!呵呵.学了之后才知道,js数组的功能强大很,远比VB,C#强多了,大家慢慢看吧 1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arr

js常用操作--数组

<script> /** * js操作函数 * * * push(): * pop(): * shift(): * split(): */ //数组添加元素 //数组删除元素 //数组拷贝 //split():由字符串生成数组 /** * 对于数组的整体性操作需要注意: * 当把一个数组a赋给另外一个数组b时,只是为被赋值的数组a增加了一个新的引用.当修改赋值数组b的值时,被赋值的数组a也会感知到这个变化 */ var nums1 = []; var nums2 = []; for(var i