1、把两个数组(array)处理为对象(object)
var [list1,list2]=[[1,2,3,4],['a','b','c','d']];
var obj = new Object();
list2.forEach((ele1,index1) =>{
list1.forEach((ele2,index2) =>{
if(index1 === index2 ){
obj[ele1] = ele2
}
});
});
console.log(obj)//{a: 1, b: 2, c: 3, d: 4}
2、对象(obdect)分别取出key和value
//获取key
Object.keys(obj)
//获取value
Object.values(obj)
3、使用set向对象插入数据一条或者多条数据
//name:是变量名; key:是键; value:是值
this.$set(name,key,value)
4、当有判空操作时,用模板字符串方式拼接数据
//name是变量名,使用这个可避免拼接出现NaN或undefined
`${name || ''}${name || ''}`
5、树过滤数据
1.监听绑定值
filterName(val) {
this.$refs.tree.filter(val);
};
2.tree自带的方法 :filter-node-method="filterNode"
filterNode(value, data) {
if (!value) return true;
return data.name?.indexOf(value) !== -1 || data?.code?.indexOf(value) !== -1;
},
6、两个数组,从数组对象中过滤某条对象id存在数组中
array1 = [1,2,3];
array2 = [
{id:1,value:'one'},
{id:2,value:'two'},
{id:3,value:'three'},
{id:4,value:'four'},
];
let arr = array2.filter(item => !array1.includes(item.id));//[{id:4,value:'four'}]
7、filter的用法:数组对象过滤
filter():会创建一个新的数组;不会改变原数组;return 取布尔值,true就push入新数组,反之不会。
#eg1:
var arr = [
{id:1,value:'one'},
{id:2,value:'two'},
{id:3,value:'three'},
{id:4,value:'four'},
];
var newArr = arr.filter(item => item.value === 'one');//[{id:1,value:'one'}]
#eg2:表格数据过滤;可以通过筛选符合行数据的条件。
*注意*:如果computed定义变量,在data里面就不用定义了
:data="tableData"//表格数据
tableData(){//computed定义的变量
return this.requiredData.filter(val => val?.propName.indexOf(this.keyWord) !== -1);//r行数据包含关键字返回符合条件集合
},
8、some函数
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
//用some函数找出含有2的字符串,some返回的是布尔值(true/false)
let data = [
{do:'1'},
{do:'2'},
]
let flag = data.some((e) => e.do.includes('2'));