数组的方法

会改变原数组

1)pop(),arr.pop()=>移除最后一个元素

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
console.log(fruits)

//[ 'Banana', 'Orange', 'Apple' ]

2)push()把元素添加到数组尾部

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
结果输出
Banana,Orange,Apple,Mango,Kiwi

3)reverse()在原数组中颠倒元素的顺序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
输出结果
Mango,Apple,Orange,Banana

4).shift ()移除数组的第一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
结果
Orange,Apple,Mango

5).sort ()在原数组中对数组元素进行排序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
输出结果 Apple,Banana,Mango,Orange

6).splice()插入、删除或替换数组元素。

语法 array.splice(index,howmany,item1,.....,itemX

index 表示要操作数组的开始位置索引值,必填

howmany 表示要删除元素的个数 必须是数字  可以是0,如果没填就是删除从index 开始到数组的结尾

item1....   表示要添加到数组中的新值

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newarray = fruits.splice(2);
console.log(fruits)
console.log(newarray)
结果是
[ 'Banana', 'Orange' ]
[ 'Apple', 'Mango' ]

改变原数组  返回的是被删除的元素的数组集合

7).unshift()在数组头部插入元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
fruits 将输出:

Lemon,Pineapple,Banana,Orange,Apple,Mango

8).forEach  map  filter 等遍历数组的情况下 ,在遍历中去修改原数组

这里需要注意的是  在遍历中修改元素值的时候 有两种情况  一个是元素值是基本数据类型的   还有一种情况是元素值是引用数据类型的值

第一种情况下 直接去修改基本数据类型的值 是不会改变原数组的,需要借助 index  来实现改变  

let arr = [1,3,5,7,9];
                arr.forEach(function(item,index,arr){
                    arr[index] = 30;
                })
                console.log(arr); //输出 (5) [30, 30, 30, 30, 30]

第二种情况的时候

var fruits = [
  {
    name:'aaa',
    id: 1
  },
  {
    name:'bbb',
    id:2
  }
];


fruits.map(item => {
  if (item.id === 1){
    item.name = 'Banana----new'
  }
})

console.log(fruits)

不改变原数组的方法

1.concat()把元素衔接到数组中。

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

2.every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true

3.filter()返回满足断言函数的数组元素。

4.forEach()为数组的每一个元素调用指定函数。

5indexOf()在数组中查找指定元素。  如果找到的话返回该元素的索引  没找到 返回-1

6.join()将数组的所有元素转化为字符串。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
console.log(fruits)
console.log(energy)

[ 'Banana', 'Orange', 'Apple', 'Mango' ]
Banana,Orange,Apple,Mango

7.lastIndexOf()在数组中反向查找。

8.map()从数组的元素中,计算出新的数组。

9.some()测试是否至少有一个数组元素能让断言函数为真。

10.slice()返回数组的一部分。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);
结果输出  Orange,Lemon

11.reduce()从数组的元素中,计算出一个值。

参数接收一个函数  函数中接收两个参数  第一个是数组的值,第二个是初始值,不传的话就是0 循环调用该函数 前一个的返回值是后面的第二个参数

12.reduceRight()从右往左计算数组

 this.goodsList = this.goodsList.map(item => {

                    return {

                        sourceBillLineId: item.sourceBillLineId,

                        lineState: item.lineState,

                        itemName: item.itemName,

                        buyQty: item.itemQty,

                        // itemPrice: res.sumPaidAmt,

                        itemPrice: item.itemPrice,

                        freightAmt: item.freightAmt,

                        itemCode: item.itemCode,

                        itemQty: item.itemQty

                    };

                });

                let lineState = this.goodsList.map(state => {

                    return state.lineState;

                });

                lineState = lineState

                    .join('|')

                    .replace(/\|\|/g, '|')

                    .replace(/^\|/, '')

                    .replace(/\|$/, '')

                    .split('|'); //预防返回null

                const min = Math.min.apply(Math, lineState);

                const noreturn = [5, 16, 20, 25, 27, 28, 30, 35]; // 重新定义lineState

                const state = noreturn.filter(item => {

                    return min === item;

                });

                if (min) {

                    if (state.length != 0) {

                        this.getDict('APPLICATION_TYPE_NOT');

                    } else if (state.length == 0) {

                        this.getDict('APPLICATION_TYPE');

                    }

                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值