js 数组长度以及限制判断

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

回到顶部