js中的Array

  1. 啥是ArrayLike对象

    类似,下面这种对象的就是ArrayLike
    var arraylike = {
    0: "a",
    1: "b",
    2: "c",
    length: 3
    }
    arraylike.forEach(element => { // 报错
    console.log(element);
    });
    ArrayLike对象和数组类似,但是不能使用数组的方法,因为它是继承自Object.prototype而不是Array.prototype 获取dom元素的方法,一般都会产生ArrayLike对象
  2. 将ArrayLike对象转换成Array

    方式一:
    var array = Array.from(arraylike); 方式二:
    var array = Array.from(arraylike, item => item+item);
  3. reduce方法

    reduce方法其实类似于叠罗汉,取数组中第一个参数和第二个参数做运算,然后将结果返回,作为下一次运算的第一个元素与数组中的第三个元素运算,重复这种操作
    var array = [1,2,3,4,5];
    var res = array.reduce((a, b) => a + b); // 15 求和运算
    var res = array.reduce((a, b) => a + b, 10); // 25 传递第二个参数作为运算的起始第一个参数 数组格式化成对象,这对于处理后端api数据,方便前端渲染很有用
    var array = [
    {name: "小明", age: "10"},
    {name: "小张", age: "20"},
    {name: "小王", age: "30"},
    ] 方式一:
    var obj = array.reduce((a, b) => {
    a[b.name] = b.age;
    return a;
    }, {}); // { '小明': '10', '小张': '20', '小王': '30' } 方式二:
    var obj = array.reduce((a, b) => Object.assign(a, {
    [b.name]: b.age
    }), {}); 方式三:
    var obj = array.reduce((a, b) => ({...a, [b.name]: b.age}), {});
  4. map方法

    map方法循环便利所有元素,产生一个新的数组
    
    var arr = [1,2,3,4,5];
    var res = arr.map(item => item+1); // [ 2, 3, 4, 5, 6 ] var res = arr.map(function(item){
    return item+this.init;
    }, {
    init: 1
    }); // [ 2, 3, 4, 5, 6 ]
  5. filter方法

    filter方法循环便利所有元素,根据条件筛选出符合的元素,产生一个新的数组
    var arr = [1,2,3,4,5];
    var res = arr.filter(item => item > 3) // [ 4, 5 ]
  6. sort方法

    sort方法在原数组的基础上进行排序
    按照字母表顺序排序
    var arr = ["c", "b", "f", 1, "g", 2];
    arr.sort((a, b) => a.toString().localeCompare(b)); // [ 1, 2, 'b', 'c', 'f', 'g' ] 升序排序
    var arr = [3,5,2,1,9];
    arr.sort((a, b) => a - b);
  7. for...of

    遍历数组
    var arr = [3,5,2,1,9];
    for(let item of arr) {
    console.log(item);
    }
  8. every

    有条件的暂停遍历
    var arr = [3,5,2,"end",1,9];
    arr.every(item => {
    console.log(item);
    return item != "end";
    })
  9. some

    和上面的every逻辑上正好相反
    var arr = [3,5,2,"end",1,9];
    arr.some(item => {
    console.log(item);
    return item === "end";
    })
  10. find和findIndex

    var arr = [
    {name: "小明", age: "10"},
    {name: "小张", age: "20"},
    {name: "小王", age: "30"},
    ]; var res = arr.find(item => item.age==20); // { name: '小张', age: '20' }
    var res = arr.findIndex(item => item.age==20); // 1
  11. 解构

    var arr = [1,2,3,4,5];
    var [a,,b, ...c] = arr;
    console.log(a, b, c); // 1 3 [ 4, 5 ]
  12. 去重

    var arr = [1,1,2,1,1,2,3,3];
    
    利用reduce进行数组去重
    var res = arr.reduce((a,b) => {
    if(a.indexOf(b) === -1) {
    a.push(b);
    }
    return a;
    }, []) // [ 1, 2, 3 ] 利用filter进行去重
    var res = arr.filter((a,b,c) => {
    return c.indexOf(a) === b;
    }) 利用Set去重
    var res = [...new Set(arr)];

js中的Array的更多相关文章

  1. js中数组Array的一些常用方法总结

    var list = new Array()是我们在js中常常写到的代码,今天就总结一下Array的对象具有哪些方法. list[0] = 0; list[1] = 1; list[2] = 2; 或 ...

  2. JS中数组Array的用法{转载}

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^var arr = new Array();arr[0] = "aaa";arr[1] ...

  3. JS中数组Array的用法示例介绍 (转)

    new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对象的方法: var objArray=new Array() ...

  4. JS中数组Array的用法

    js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了. var arr = new Array();  // 初始化数组arr[0] = "aaa";arr[1] = ...

  5. D3.js中对array的使用

    由于D3类库和array密切相关,我们有必要讨论一下D3中的数据绑定以及在数组内部运算的方法. 1.D3中的数组 和其他编程语言一样,D3的数组元素可以是数字或者字符等类型,例如: someData= ...

  6. js中关于array的常用方法

    最近总结了一些关于array中的常用方法, 其中大部分的方法来自于<JavaScript框架设计>这本书, 如果有更好的方法,或者有关于string的别的常用的方法,希望大家不吝赐教. 第 ...

  7. JS中部分 Array 对象方法介绍

    1.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 <script type="text/javascrip ...

  8. js中数组Array 详解

    unshift:将参数添加到原数组开头,并返回数组的长度    pop:删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined    push:将参数添加到原数组末尾,并返回数组 ...

  9. js中的Array数组清空

    var data = new Array();//数组 data.length = 0;//数组的长度等于0,数组的项就会被清空

随机推荐

  1. 微信公众号 iOS UITextFiled 用中文键盘输英文出现空格的解决方法

    问题出现的现象: 最近公司开发微信公众号邀请码,需要对用户输入进行限制,允许输入的是字母和数字,其他输入会使用正则表达式禁止.但是有iOS用户反映在输入字母过程中,经常几个字母之后,邀请码不对,查看公 ...

  2. 51nod 1287 线段树

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1287 简单的线段树题目,直接写个二分查找大于等于x的最小位置就好了. # ...

  3. HTTP metadata数据

    信息元位置 信息元名称 信息元ID 信息元描述 1 MetadataVersion 5000 Metadata版本号 当前版本号为1.0 2 MetadataID 1019 MetadataID 3 ...

  4. 【deep learning精华部分】稀疏自编码提取高阶特征、多层微调完全解释及代码逐行详解

    我们前面已经讲了如何训练稀疏自编码神经网络,当我们训练好这个神经网络后,当有新的样本输入到这个训练好的稀疏自编码器中后,那么隐藏层各单元的激活值组成的向量就可以代表(因为根据稀疏自编码,我们可以用来恢 ...

  5. 【sparkSQL】创建DataFrame及保存

    首先我们要创建SparkSession val spark = SparkSession.builder() .appName("test") .master("loca ...

  6. MVC框架中的值提供机制(一)

    在MVC框架中action方法中的Model数据的绑定的来源有很多个,可能是http请求中的get参数或是post提交的表单数据,会是json字符串或是路径中的相关数据;MVC框架中针对这些不同的数据 ...

  7. Struts05---动态查询

    01.在上面案例的login.jsp页面新增 <%-- 2.动态方法的调用 前提是在 struts.xml文件中开启 不推荐! --%> <a href="user/use ...

  8. php调用API支付接口(转自刘68)

    首先访问  https://charging.teegon.com/  注册账号, 找到开发配置   记下client_id和client_secret. 点击 天工开放平台 点击天工收银 点击  S ...

  9. QT5入门之12 - QDebug输出调试信息

    这个很简单,二步即可. 1.添加头文件 #include <qdebug.h> 2.输出信息 qDebug("Test:%d",id); (%d表示整数) 3.格式化信 ...

  10. python3 tesserocr 安装 来解决部分爬虫遇到的字符识别问题

    1. OCR OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程.对于图形验证码来说,它们都是一些不规则的字符 ...