1、数组通过映射得到某一个字段的数组

var arr = this.materials.map(item => item.originalId);

2、数组去重

var newArr = arr.filter(function(item,index){
            return arr.indexOf(item) === index;  // 因为indexOf 只能查找到第一个
          });

3、遍历数组,如果不满足则进行提示

     var cancelFlag = false
        if (prepareMaList1) {
          prepareMaList1.forEach(item => {
            if (newArr.indexOf(item.materialBatchNo) == -1) {
              cancelFlag = true
              return

            }
          })
        }
        if (cancelFlag) {
          this.$message.warning('存在不存在的药材批次!')
          return
        }

4、数组是否包含某个元素

newArr.indexOf(item.materialBatchNo) == -1

等于-1表示不包含,不等于-1表示包含。

5、对数组进行过滤filter

filter方法创建一个新的数组,新数组中的元素是通过检查指定条件形成的。这个方法会检查每个元素,如果条件为真(即返回true),则将该元素放入数组中。

多条件筛选(当条件确定时)

const people = [
      { name: 'Alice', age: 25 },
      { name: 'Bob', age: 18 },
      { name: 'Amy', age: 22 },
      { name: 'David', age: 17 },
      { name: 'Alice', age: 30 }
    ];
    const filteredPeople = people.filter(person => person.name.startsWith('A') && person.age > 20);
    console.log(filteredPeople);

结果:[{ name: 'Alice', age: 25 },{ name: 'Amy', age: 22 },{ name: 'Alice', age: 30 } ]

多条件筛选(当条件不确定时,考虑有些条件没有的情况)

// 数组
    const people = [
      { name: 'Alice', age: 25, gender: '',height: 162 },
      { name: 'Bob', age: 18, gender: '',height: 172 },
      { name: 'Amy', age: 22, gender: '',height: 163 },
      { name: 'David', age: 17, gender: '',height: 182 },
      { name: 'Alice', age: 30, gender: '',height: 168 }
    ];
    // 条件
    const listQuery = {gender:'',heightMin: 170,heightMax: 175}
    const filteredPeople = people.filter(item => {
      // 根据性别筛选
      let genderFlag = null;
      if(listQuery.gender){
        genderFlag = item.gender == ''
      }else{
        genderFlag = true; // 如果没有这个条件,则为true
      }
      //根据身高范围筛选
      let heightMinFlag = null;
      if(listQuery.heightMin){
        heightMinFlag = item.height >= listQuery.heightMin
      }else{
        heightMinFlag = true;
      }
      let heightMaxFlag = null;
      if(listQuery.heightMax){
        heightMaxFlag = item.height < listQuery.heightMax
      }else{
        heightMaxFlag = true;
      }
      return genderFlag && heightMinFlag && heightMaxFlag;
    });
    console.log(filteredPeople);

结果:[{name: 'Bob', age: 18, gender: '男', height: 172}]
6、排序

this.pointList.sort((a, b) => a.price - b.price); // 根据运价升序排序

7、javascript将数组用逗号拼接成字符串

let array = ['apple', 'banana', 'cherry'];
let string = array.join(', '); // 使用逗号和空格作为分隔符

8、删除数组中指定元素

let array = [1, 2, 3, 4, 5];
let index = array.indexOf(3); // 获取元素 3 的索引
if (index > -1) {
  array.splice(index, 1); // 删除索引处的元素
}

9、判断数组中包含值

let array = [1, 2, 3, 4, 5];
// 检查值 '3' 是否在数组中
let valueExists = array.includes(3); // 返回 true
// 检查值 '8' 是否在数组中
let anotherValueExists = array.includes(8); // 返回 false

10、数组去重

const s = new Set([1, 1, 2, 3, 4, 4, 5, 6, 7, 4, 2, 1]);
Array.from(s); //  [1, 2, 3, 4, 5, 6, 7]

11、find() 方法在数组中查找符合指定条件的第一个元素,并返回该元素。如果未找到符合条件的元素,则返回 undefined。

const num = [1,3,5,7,9]
num.find(item=>item>6) // 7

例2

const supply = this.daySupplyDetailList.find(item => item.supplyCode === this.sbCode)

 

posted on 2023-07-18 17:54  周文豪  阅读(64)  评论(0编辑  收藏  举报