-
元芳怎么了
点击某按钮之后,拿到对应数组中的index,然后map一下let clickIndex //点击的indexlet fn = val => val === 0 ? 1 : 0newArr = arr.map( (val, index) => index === clickIndex ? fn(val) : 0 ) //index相等反转,否则为0
-
手掌心
let arr = [1, 0, 0, 0];function reversal(data, index) { data[index] = !data[index] ? 1 : 0; for (let i = 0; i < data.length; i++) { if (i === index) break; data[i] = 0; }}reversal(arr, 2);console.log(arr);
-
小怪兽爱吃肉
回想一下曾经学过的二进制取反: 1 - 1 = 0 1 - 0 = 1发现了什么吗? 某位数取反等于 1 减这个数本身。再看这个问题,是不是有了一个新思路:let arr = [1,0,0,0];const af = ('1111' - arr.join('')).toString().padStart(4,0).split(''); // ['0','1','1','1']这样做避免了循环遍历,但是唯一的缺点在于结果数组的元素是字符串类型,当然这其实也不会影响你做 Boolean 判断。
-
不负相思意
有且仅有一个激活的key,那你直接存一个key不就好了么,存一个数组是为了什么。
-
一只萌萌小番薯
var arr = [1, 0, 0, 0]var index = 2var check = arr[index]for (var i in arr) arr[i] = 0arr[index] = 1 - check