工作用-->JS数组方法

58 阅读1分钟

大致用法

image.png 控制台输出:

image.png

代码如下:

/* 
forEach: 遍历数组
every:遍历数组,找到条件-->return false;终止循环
map:修改并返回新数组
filter:过滤并返回新数组-->会遍历所有
find:找到并返回数组元素-->不会遍历所有
findIndex:找到并返回数组索引
some:是否存在某个元素
flatMap:拉平数组-->只能拉平一层,二层数组转一层
reduce:求和
*/

const arr = [1, 2, 3]


console.log("---------forEach---------");
arr.forEach(v => {
  console.log(v)
})


console.log("---------every---------");
arr.every(v=>{
  console.log(v);
  return false
})

console.log("---------map---------");
console.log(arr.map(v=>{
  return 1
}));

console.log("---------filter---------");
console.log(arr.filter(v=>{
  return v===1
}));

console.log("---------find---------");
console.log(arr.find(v=>{
  return v===1
}));


console.log("---------some---------");
console.log(arr.some(v=>{
  return v===1
}));


console.log("---------flatMap---------");
const arr2 =[1,2,3,[1]]
console.log(arr2.flatMap(v=>{
  return v
}));

console.log("---------reduce---------");
console.log(arr.reduce((sum,v)=>{
  return sum +v
}));

map方法应用

    this.tableData = res.rows.map(item => {
        if (item.ticketPrice == null || item.ticketPrice == '') {
            item.ticketPrice = 0;
        }
        if (item.vipTicketPrice == null || item.vipTicketPrice == '') {
            item.vipTicketPrice = 0;
        }
        if (item.passengerNum == null || item.passengerNum == '') {
            item.passengerNum = 0;
        }
        if (item.vipPassengerNum == null || item.vipPassengerNum == '') {
            item.vipPassengerNum = 0;
        }
        if (item.freeTickets == null || item.freeTickets == '') {
            item.freeTickets = 0;
        }
        if (item.totalAmount == null || item.totalAmount == '') {
            item.totalAmount = 0;
        }
        return item;
    });

比较两组数组,得出新数组

1、现在有两个数组

let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4

2、期望 arr1 和 arr2比较之后,得到新数组,如下:

let newArr = [5, 6, 7]

3、实现

// 方式1
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res = []
res.push( arr1.filter(item => {
    return !arr2.includes(item)
}))

// 方式2
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res = []
res.push( arr1.filter(item => {
    return arr2.indexOf(item) === -1
}))

// 方式3
let arr1 = [1, 2, 3, 4, 5, 6, 7]
let arr2 = [1, 2, 3, 4]
let res = []
for(let i = 0; i < arr1.length; i++){
  if(!arr2.includes(arr1[i])){
      res.push(arr1[i]);
  }
}
console.log(res) // res就是比较后,不同的数据组成的新数组