在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  HTML/ 如何處理這個數(shù)組?

如何處理這個數(shù)組?

let arr = [1,0,0,0];

我的問題是arr里面的每項分別是每個按鈕的狀態(tài),我點擊某項反轉(zhuǎn)其狀態(tài),且其他置為0。

如何比較好的實現(xiàn)?

回答
編輯回答
陌顏

arr[i] = !arr[i]?1:0

2017年8月1日 15:57
編輯回答
愛是癌

只能循環(huán)判斷了把

2018年7月31日 00:48
編輯回答
尋仙

回想一下曾經(jīng)學(xué)過的二進制取反:

    1 - 1 = 0
    1 - 0 = 1

發(fā)現(xiàn)了什么嗎? 某位數(shù)取反等于 1 減這個數(shù)本身。

再看這個問題,是不是有了一個新思路:

let arr = [1,0,0,0];

const af = ('1111' - arr.join('')).toString().padStart(4,0).split('');  // ['0','1','1','1']

這樣做避免了循環(huán)遍歷,但是唯一的缺點在于結(jié)果數(shù)組的元素是字符串類型,當然這其實也不會影響你做 Boolean 判斷。

2017年8月2日 15:11
編輯回答
乞許

對象處理較好一點

2018年4月27日 07:32
編輯回答
陪她鬧

有且僅有一個激活的key,那你直接存一個key不就好了么,存一個數(shù)組是為了什么。

2017年1月8日 15:06
編輯回答
不歸路

點擊某按鈕之后,拿到對應(yīng)數(shù)組中的index,然后map一下

let clickIndex //點擊的index
let fn = val => val === 0 ? 1 : 0
newArr = arr.map( (val, index) => index === clickIndex ? fn(val) : 0 ) //index相等反轉(zhuǎn),否則為0
2018年5月2日 10:09
編輯回答
不舍棄

用數(shù)組存儲狀態(tài),需要遍歷比較麻煩,建議你用對象,操作比較方便

2017年10月11日 05:58
編輯回答
怣痛
var arr = [1, 0, 0, 0]
var index = 2

var check = arr[index]

for (var i in arr) arr[i] = 0

arr[index] = 1 - check
2017年5月1日 02:35
編輯回答
背叛者
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);
2017年1月22日 22:41