会改变原数组
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');
}
}