use*_*316 5 javascript arrays angularjs
var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var evenNoLst = numerList.map(function(no) {
return ((no % 2) === 0);
});
console.log(evenNoLst)Run Code Online (Sandbox Code Playgroud)
以上代码对我来说是创建偶数数字的地图,现在我也想要有奇数列表.我是否需要再次遍历号码列表?或者有没有办法使用单个遍历数组的两个地图.
我正在使用Javascript.
Cri*_*scu 20
这是一种将它分开的方法reduce:
var numberList = [1, 3, 7, 2, 4, 16, 22, 23];
var grouped = numberList.reduce(function (acc, x){
acc[x%2].push(x);
return acc;
}, [[], []]);
console.log(grouped);Run Code Online (Sandbox Code Playgroud)
结果是一个内部有两个数组的数组:第一个数组为偶数,第二个数组为奇数.
您可以使用逻辑NOT运算符并映射所有布尔值.
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);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
采用单循环方式
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);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
带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);Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
933 次 |
| 最近记录: |