js给数组对象添加一个对象 js往数组中添加元素添加方法


js给数组对象添加一个对象 js往数组中添加元素添加方法

文章插图
数组的创建
几种创建数组的方法 1. let a1 = new Array(); 2. let a1 = Array();//与第一种方式等价 3. let a1 = Array.from(obj); //ES6 4. let a1 = Array.of(); //ES61,2两种方法创建数组,如果传入的参数是数字,表示新创建的数组的长度,而不是数组的元素 。of方法解决1,2两种方法的歧义,数字代表的是数组的元素 。
Array.from方法用于将类数组结构转换为数组实例,Array.of方法用于将一组参数转换为数组实例 。
Array.from()第一个参数是一个可迭代的类数组对象,或者有一个length属性的可索引元素结构 。
Array.from("Polo"); //['P', 'o', 'l', 'o']const m = new Map().set(1,2).set(3,4);const s = new Set().add(1).add(2).add(3).add(4);Array.from(m); //[[1,2],[3,4]]Array.from(s); //[1,2,3,4]Array.from()可接收第二个可选映射函数参数,这个函数可以直接增强新数组的值,也就是说可以对第一个参数里的值做处理,新建数组的值为经过第二个参数函数加工的值 。
const a2 = Array.from([1,2,3,4], x => x * 2); //[2,4,6,8]Array.from()还可以接收第三个可选参数,用于指定映射函数中this的值,但这个重写的this值在箭头函数中不适用 。
const a3 = Array.from([1,2,3,4],function(x){return x**this.exponent},{exponent:2}); //[1,4,9,16]数组length属性
数组的length属性不是只读的,通过修改length属性,可以从数组末尾删除或添加元素 。
let colors = ['red', 'blue', 'green'];colors.length=4;//数组末尾增加一个元素,值为undefinedcolors[99] = 'black';//数组长度变为100,3-98位置的元素值为undefined检查是否为数组
ES6之前的版本,检查数组用各类方式,各有各的道理,也有各自的问题 。ES6提供了Array.isArray方法,确定一个值是否为数组 。
if (Array.isArray(value)) {//操作数组}数组迭代方法
1. keys() //返回数组索引的迭代器2. values() //返回数组元素的迭代器3. entries() //返回索引/值对的迭代器4. for(const [index,element] of a.entries()) //ES6解构语法在循环中拆分键值对复制和填充
Array.copyWithin(): 按照指定范围浅复制数组中的部分内容,然后将他们插入到指定索引开始的位置 。第1个参数表示插入位置的索引,第2个可选参数表示开始复制的索引位置 。
let ints;reset = () => ints = [0,1,2,3,4,5,6,7,8,9];reset();ints.copyWithin(5); //[0,1,2,3,4,0,1,2,3,4]reset();ints.copyWithin(0,5); [5,6,7,8,9,5,6,7,8,9]reset();ints.copyWithin(4,0,3); //[0,1,2,3,0,1,2,7,8,9]Array.fill():第1个参数,表示用于填充的元素,第2个可选参数,表示填充的开始位置,第3个可选参数,表示填充的结束位置 。fill()静默忽略超出数组边界,零长度及方向相反的索引范围 。
const zeroes = [0, 0, 0, 0, 0];zeroes.fill(5); //[5,5,5,5,5];zeroes.fill(0);zeroes.fill(7,3); //[0,0,0,7,7]zeroes.fill(0);zeroes.fill(7,1,3); //[0,7,7,0,0]数组排序方法
reverse(): 将数组元素反向排列
sort():按升序排列数组元素,sort()会在每一项上调用String()转型函数,然后比较字符串来决定顺序 。sort()方法可以接收一个比较函数 。用于判断哪个值应该排在前面 。
let values = [0,1,5,10,15];values.reverse(); //[15,10,5,1,0]values.sort(); //[0,1,10,15,5]values.sort((x,y) => x - y); //[0,1,5,10,15]迭代方法
every():对数组每一项都运行传入的函数,如果每一项都返回true,则这个方法返回true 。
some():对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true 。
filter():对数组每一项都运行传入的函数,函数返回true的项会组成之后的返回 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: