var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var evenNoLst = numerList.map(function(no) {
return ((no % 2) === 0);
});
console.log(evenNoLst)
上面的代码为我创建了一个偶数映射,现在我也想拥有一个奇数列表。我是否需要再次遍历号码表?或者有没有办法使用数组的单个遍历来拥有两个映射。
我正在使用Javascript。
最佳答案
您可以采用逻辑NOT运算符并映射所有 bool 值。
var numerList = [1, 3, 7, 2, 4, 16, 22, 23],
evenNoLst = numerList.map(no => no % 2 === 0),
oddNoLst = evenNoLst.map(b => !b);
console.log(evenNoLst);
console.log(oddNoLst);
.as-console-wrapper { max-height: 100% !important; top: 0; }
采用单循环方法
var numerList = [1, 3, 7, 2, 4, 16, 22, 23],
oddNoLst = [],
evenNoLst = [];
numerList.forEach(function (no) {
var even = no % 2 === 0;
evenNoLst.push(even);
oddNoLst.push(!even);
});
console.log(evenNoLst);
console.log(oddNoLst);
.as-console-wrapper { max-height: 100% !important; top: 0; }
带
for ... of
循环var numerList = [1, 3, 7, 2, 4, 16, 22, 23],
oddNoLst = [],
evenNoLst = [],
no, even;
for (no of numerList) {
even = no % 2 === 0;
evenNoLst.push(even);
oddNoLst.push(!even);
}
console.log(evenNoLst);
console.log(oddNoLst);
.as-console-wrapper { max-height: 100% !important; top: 0; }