数组

博客介绍了JavaScript中多个数组方法的返回值及对现有数组的影响。如reduce返回归并结果,不改变数组;splice返回操作数组,会改变数组等。还提到部分方法对数组和字符串都有效,部分仅对数组有效。
1.reduce 返回的是归并的结果,此方法不会更改现有数组;
1var a = [123]
2
3console.log(a.reduce((a, b) =>a + b))   // 6 ;箭头函数,返回语句只有一句,括号必须省略
4
5console.log(a)   //  [1, 2, 3]
2.splice 返回的是操作的数组,此方法会改变现有数组;
 1var a = [123];
2
3console.log(a.splice(11))             // [2];
4
5console.log(a);                         // [1, 3] 
6
7var a = [123]
8
9console.log(a.splice(10, 44) )      // []
10
11console.log(a)                          // [1, 4, 4, 2, 3];插在索引项前面
12
13var a = [12 ,3];
14console.log(a.splice(314))          // []
15console.log(a)                          // [1, 2, 3, 4]
3. concat 返回的是合并的结果,此方法不会更改现有数组
1var a = [123]
2console.log(a.concat([4]))              // [1, 2, 3, 4]
3
4console.log(a)                          // [1, 2, 3]
5
6// 也适用于字符串
7
8console.log("abc".concat('de'))         // abcde

注意:对象引用(而不是实际对象):concat将对象引用复制到新数组中。 原始数组和新数组都引用相同的对象。 也就是说,如果引用的对象被修改,则更改对于新数组和原始数组都是可见的。 这包括也是数组的数组参数的元素。

4. reverse 返回的是翻转过的数组,此方法会改变现有数组;
1var arr = [123]
2
3console.log(arr.reverse())      // [3, 2, 1]
4
5console.log(arr)           // [3, 2, 1]
5.slice 返回的是切割后的数组, 此方法不会更改现有数组
1var arr = [123]
2
3console.log(arr.slice(02))              // [1, 2]
4
5console.log(arr)                          // [1, 2, 3]
6.push pop unshift shift
 1// -push 返回的是push后数组的长度,此方法会改变现有数组;
2var arr = [123]
3console.log(arr.push(0))                // 4;长度
4console.log(arr)                        // [1, 2, 3, 0]
5
6// -pop  返回的是 pop出来的元素, 此方法会改变现有数组;
7var arr = [120]
8console.log(arr.pop())                   // 0;弹出元素
9console.log(arr)                         // [1, 2] 
10
11// -shift  返回的是 shift出来的元素, 此方法会改变现有数组;
12const arr = [123]
13console.log(arr.shift())                 // 1;弹出元素
14console.log(arr)                         // [2, 3]
15
16// -unshift 返回的是unshift后数组的长度,此方法会改变现有数组;
17var arr = [123]
18console.log(arr.unshift(0))              // 4;长度
19console.log(arr)                         // [0, 1, 2, 3]
7. forEach() 对数组中的每一项运行给定函数,这个方法没有返回值,此方法不会更改现有数组

map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组,此方法不会更改现有数组

filter() 对数组中的每一项运行给定函数,返回调用该函数会返回true的项组成的数组,此方法不会更改现有数组

8.sort 返回的是排序后的数组,此方法会改变现有的数组;
1var a = [1,4,3,2]
2var b = a.sort((a, b)=> a - b)
3console.log(a)  // [1, 2, 3, 4]
4console.log(b)  // [1, 2, 3, 4]

另外:indexOf includes slice对数组字符串都有效, splice reverse只对数组有效

转载于:https://www.cnblogs.com/rencoo/p/9533273.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值