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. URL的编码

    + URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的 URL 和参数 %3F % 指定特殊字符 %25 # 表示书签 %23 ...

  2. IOS-将任意对象存进数据库

    model // // HMShop.h // 将任意对象存进数据库 // // Created by apple on 14/11/20. // Copyright (c) 2014年 heima. ...

  3. 009——VUE中watch监听属性变化实现类百度搜索栏功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. python基础之迭代器协议和生成器(二)

    一.什么是迭代器: 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 迭代器是一个可以记住遍历的位置的对象. 迭代器的 ...

  5. 不用配置 , 快速搭建react环境

    链接 create-react-app react-webpack-generators react-cli

  6. Azure VM Scalable Sets -- 适用IAAS架构

    1. 选择Virtual Machine scale set2. 选择resource manager(或创建最新)3. 基本信息配置4. 配置scale的参数(可伸缩的balance模型):VM最小 ...

  7. 本站上线KMS服务~一句命令激活windows和office

    服务器地址:kms.luody.info 更新: 脚本维护更新:2016-09-29 服务端版本:vlmcsd-1108-2017-01-19-Hotbird64 服务作用:在线激活windows和o ...

  8. 自己搭建MVC时遇到的一些问题及解决办法

    错误1 The view 'Index' or its master was not found or no view engine supports the searched locations. ...

  9. 【Android】Android 学习记录贴

    官网 教程学习笔记 Genymotion 安卓虚拟器太慢,用Genymotion(装载eclipse的插件) 利用Genymotion运行Android应用程序 1.首先,点击 来启动或者创建您要使用 ...

  10. 51nod 1089 最长回文子串 V2(Manacher算法)

    回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. 收起   输入 输入Str(Str的长度 <= 100000) ...