js 数组长度以及限制判断
// 1. 需求 arr1 = [] arr2 = []// 只要(arr1数组长度为2, arr2就只能push一条数据(数组里面只能是一条数据)
// 相反(arr2数组长度为2)arr1就只能push一条数据(数组里面只能是一条数据)
// arr2Add等于true就可以添加,false不能添加(arr1Add同理)
// arr1数组长度为多个,arr2就只能为1个
// arr2数组长度为多个,arr1就只能为1个
computed: { arr1(val) {
if(val.length >= 2 && this.arr2.length <= 2) {
this.arr1Add = false
} else {
this.arr1Add = true
}
},
arr2(value) {
if(value.length >= 2 && this.arr1.length <= 2) {
this.arr2Add = false
} else {
this.arr2Add = true
}
}
}
往数组push的代码没写出来、我这个计算属性判断有问题,麻烦帮我看看,谢谢大佬们。
回答:
这个判断应该是在push的时候去做,比如
pushArr1(val) { if (this.arr2.length < 2) {
this.arr1.push(val);
}
this.arr2Add = this.arr1.length >= 2 ? this.arr2.length == 0 ? true : false : true
}
pushArr2(val) {
if (this.arr1.length < 2) {
this.arr2.push(val);
}
this.arr1Add = this.arr2.length >= 2 ? this.arr1.length == 0 ? true : false : true
}
其实这两个方法实现思路是一样的,可以合并为一个
/** * tarIndex 为需要push数据的目标数组的索引,比如arr1,则tarIndex为1
* otherIndex 为另一个数组的索引,比如tarIndex为1时,那otherIndex就是2;tarIndex为2时,otherIndex为1
* val 为要push的数据
*/
push(tarIndex, otherIndex, val) {
if (this[`arr${otherIndex}`].length < 2) {
this[`arr${tarIndex}`].push(val);
}
this[`arr${otherIndex}Add`] = this[`arr${tarIndex}`].length >= 2 ? this[`arr${otherIndex}`].length == 0 ? true : false : true
}
回答:
其实要确定两个数据是否可以添加数据,取决于自身的长度是否是 0(因为至少可以添加一条数据)以及另一个数组长度是否大于 1。所以
computed: { arr1Addable() { return !this.arr1.length || this.arr2.length <= 1; },
arr2Addable() { return !this.arr2.length || this.arr1.length <= 1; }
}
以上是 js 数组长度以及限制判断 的全部内容, 来源链接: utcz.com/p/936926.html