ES6中关于数组原型方法的扩展

本文只是限于自己的理解,可能也有很多不足或者不正确的地方,希望大家多多指正~

1.copyWithin(index,index1,index2);

从原数组中读取内容,替换数组中指定位置的内容

参数:index:从index索引开始替换

           index1:替换的内容从index1开始

           index2:替换的内容从index2结束但不包括index2(数组中涉及到的索引范围没有特别说明,一般都是左闭右开)

注意:此方法会改变原数组,并且当有超出部分时,自动截取,保持原数组长度不变

<script>
       let ary1=[1,2,3,4];
       let res1=ary1.copyWithin(2,0,3);
       console.log(res1);//[1,2,1,2]
</script>

2.fill("item",index1,index2);

按照指定字符填充数组

参数:item:用item来填充数组

          index1:填充开始的位置(可选)

          index2:填充结束的位置(可选)

         若只有一个参数item,则数组内容全部替换填充为item;

<script>
        let ary2=[5,8,9,7,45];
	let res2=ary2.fill("哈哈",2,6);
	console.log(res2);//[5, 8, "哈哈", "哈哈", "哈哈"]
</script>

3.filter(callback)

遍历数组,根据返回值过滤原数组,返回true留下当前项,返回false删除当前项

此方法不会改变原数组,返回一个新数组

<script>
       let ary3=[1,"哈哈",5,7,"啦啦",11];
       let res3=ary3.filter(function(item,index){
	  return typeof item!="string";
       });
       console.log(res3);// [1, 5, 7, 11]
</script>

4.find(callback)

先遍历数组,一旦数组函数返回true,停止查找,返回当前项;

<script>
       let ary4=[1,9,5,8,"啦啦",11,12];
       let res4=ary4.find(function(item,index){
	   return item%3;
       });
       console.log(res4); //1
</script>

findIndex用法与find一致,但是返回的是当前索引,而find返回的是当前项

5.reduce(callback,init)迭代

前一项与当前项的迭代

第二个参数:prev的初始值;(可选)

<script>
       let ary8=[9,27,8,11,12];
       let res8=ary8.reduce(function(prev,item){
	   return prev+item;
       },10)
       console.log(res8);
</script>

reduceRight 跟reduce一样,只是顺序从右开始

6.keys()遍历

每一项索引的接口,一般使用for of 遍历

<script>
        let ary9=[1,2,5,4,7];
	for (let key of ary9.keys()){
	      console.log(key);//0 1 2 3 4
	};
</script>

for of 遍历数组,默认遍历每一项

7.entries()遍历接口,可以遍历到索引和每一项(可以使用解构)

<script>
        let ary10=[1,3,5,4,7];
	for (let i of ary10.entries()){
	     console.log(i);//打印出来的是对象,有key和value
	}
	for (let [index,item] of ary10.entries()){
	    console.log(item);//打印出来的是数组中的每一项
	}
</script>

注意:遍历数组的方法,参数是函数,函数中this指向的是window,如果想改变this的指向,可以用第二个参数来改变this的指向,但reduce除外,因为reduce第二个参数是prev前一项的初始值,并且没有第三个参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 JavaScript 数组对象是一种用于存储和操作多个数据项的特殊对象。数组对象的 add() 方法并不存在于 JavaScript 标准库,但可以通过自定义方法来实现类似行为。 下面是一个通过自定义 add() 方法数组添加元素的示例: ```javascript Array.prototype.add = function(element) { this.push(element); }; // 示例用法 let myArray = [1, 2, 3]; console.log(myArray); // 输出 [1, 2, 3] myArray.add(4); console.log(myArray); // 输出 [1, 2, 3, 4] ``` 在这个示例,我们通过对 Array 对象的原型进行扩展,添加了一个名为 add() 的方法。这个方法使用了内置的 push() 方法,将传入的元素添加到数组的末尾。 通过自定义方法,我们可以为数组对象添加我们自己需要的功能,让其更加符合我们的需求。然而,需要注意的是在实际开发,为了避免命名冲突和代码维护的困难,我们应该谨慎使用原型扩展,尽量只针对自己的代码,避免对原生对象进行修改。 最后,值得注意的是,如果使用的是 ES6 或更新版本的 JavaScript,建议使用箭头函数或类的方式来扩展数组对象,以避免原型污染和代码可读性的问题。 ### 回答2: 在JavaScript,没有内置的add()方法可以直接用于数组。然而,我们可以通过编写自定义函数来实现向数组添加元素的功能。 一个常见的方法是使用数组的push()方法。push()方法用于向数组的末尾添加一个或多个元素。示例如下: ```javascript let arr = [1, 2, 3]; arr.push(4); // 在数组末尾添加元素4 console.log(arr); // 输出 [1, 2, 3, 4] ``` 另一种方法是使用数组的length属性来添加元素。具体步骤如下: ```javascript let arr = [1, 2, 3]; arr[arr.length] = 4; // 在数组末尾添加元素4,使用arr.length作为新元素的索引 console.log(arr); // 输出 [1, 2, 3, 4] ``` 除了向末尾添加元素,我们还可以使用splice()方法向指定位置添加元素。splice()方法可以在数组的指定索引位置添加、删除或替换元素。示例如下: ```javascript let arr = [1, 2, 3]; arr.splice(1, 0, 4); // 在索引为1的位置添加元素4 console.log(arr); // 输出 [1, 4, 2, 3] ``` 需要注意的是,splice()方法第一个参数为要添加或删除元素的起始索引位置,第二个参数为要删除的元素个数,第三个及之后的参数为要添加到数组的新元素。 综上所述,虽然JavaScript没有直接的add()方法用于数组,但我们可以通过使用push()、length属性或splice()方法来实现向数组添加元素的功能。 ### 回答3: Javascript数组并没有add()方法。但是我们可以通过以下方法数组添加元素: 1. 使用push()方法: push()方法用于将一个或多个元素添加到数组的末尾。例如: ```javascript let array = [1, 2, 3]; array.push(4); console.log(array); // [1, 2, 3, 4] ``` 2. 使用splice()方法: splice()方法可以用于在指定的位置插入新的元素。例如: ```javascript let array = [1, 2, 3]; array.splice(1, 0, 4); console.log(array); // [1, 4, 2, 3] ``` 这个例子的1表示插入的位置,0表示不删除任何元素,后面的参数4是要插入的新元素。 3. 直接赋值给数组下标: 也可以通过直接为数组的指定下标赋值的方式来添加元素。例如: ```javascript let array = [1, 2, 3]; array[3] = 4; console.log(array); // [1, 2, 3, 4] ``` 注意,如果指定的下标位置大于数组的长度,数组会自动扩展并填充空的位置。 综上所述,我们可以使用push()、splice()方法或直接为数组的指定下标赋值来添加元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值