Array 工具用于在单个的变量中存储多个值。 建立 Array 工具的语法:
new Array(); new Array(size); new Array(element0, element1, ..., elementn);
参数
参数 size 是期望的数组米素个数。返回的数组,length 字段将被设为 size 的值。
参数 element ..., elementn 是参数列表。当使用这些参数来挪用组织函数 Array() 时,新建立的数组的米素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。
返回值
返回新建立并被初始化了的数组。
若是挪用组织函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
当挪用组织函数时只通报给它一个数字参数,该组织函数将返回具有指定个数、米素为 undefined 的数组。
当其他参数挪用 Array() 时,该组织函数将用参数指定的值初始化数组。
当把组织函数作为函数挪用,不使用 new 运算符时,它的行为与使用 new 运算符挪用它时的行为完全一样。
类似,下面这种工具的就是ArrayLike var arraylike = { 0: "a", 1: "b", 2: "c", length: 3 } arraylike.forEach(element => { // 报错 console.log(element); }); ArrayLike工具和数组类似,然则不能使用数组的方式,由于它是继续自Object.prototype而不是Array.prototype 获取dom米素的方式,一样平常都市发生ArrayLike工具
将ArrayLike工具转换成Array
方式一: var array = Array.from(arraylike); 方式二: var array = Array.from(arraylike, item => item+item);
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}), {});
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 ]
filter方式
filter方式循环便利所有米素,凭据条件筛选出相符的米素,发生一个新的数组 var arr = [1,2,3,4,5]; var res = arr.filter(item => item > 3) // [ 4, 5 ]
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);
遍历数组 var arr = [3,5,2,1,9]; for(let item of arr) { console.log(item); }
有条件的暂停遍历 var arr = [3,5,2,"end",1,9]; arr.every(item => { console.log(item); return item != "end"; })
和上面的every逻辑上正好相反 var arr = [3,5,2,"end",1,9]; arr.some(item => { console.log(item); return item === "end"; })
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
var arr = [1,2,3,4,5]; var [a,,b, ...c] = arr; console.log(a, b, c); // 1 3 [ 4, 5 ]
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)];
日本特摄区另一大经典《魔进战队》新特摄电影刚刚于2月20日与另外2部特摄同时上映,官方解禁了一段最新特别影像,还没有观影的粉丝可以先睹为快。 ·《魔进战队》系列新作,《魔进战...
神仙贵妇膏主要起到抗衰老去暗黄美白功效的,如果你购买后还不知道怎么使用的话,不妨看看本站提供的神仙贵妇膏怎么用步骤。 神仙贵妇膏怎么样 【名称】:神仙贵妇膏 【功效】:美白去黄、淡斑、淡化痘...
求一个高难度的WiFi密码(TP-LINK)电脑的! 可直接通过电脑,进入路由器设置页面查看(非本人路由器可询问机主)。工具:路由器、电脑 查看方法:TP-link的wifi密码是个人后期设置的,可进...
我们在使用电脑的时候,会在电脑上下载程序,但是觉得下载的时间太久了不想一直等,这时我们可以用bat让电脑定时关机,那么win7定时关机bat怎么设置呢,方法很简单不难,下面小编给大家分享win7定...
继美国迪士尼乐园进驻上海并大获成功后,大批海外乐园随之集体抢滩中国市场。 但对于殷切期待新兴娱乐品牌的国内购物中心及商业综合体而言,以上超大型的室外乐园却难以进驻。本文为您精心...
苹果手机被黑客攻击了怎么办? 苹果手机被黑客入侵的解决办法如下:设置更复杂的密码。手机开机密码设置的更加复杂一些,这样输错多次密码时手机能自动抹掉数据,同时还可启动的加密功能和手机寻找功能。检查启用防...