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)