var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var evenNoLst = numerList.map(function(no) {
return ((no % 2) === 0);
});
console.log(evenNoLst)
我正在使用Javascript。
var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var evenNoLst = numerList.map(function(no) {
return ((no % 2) === 0);
});
console.log(evenNoLst)
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);
结果是一个包含两个数组的数组:第一个数组包含偶数,第二个数组包含奇数。
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; }
map
函数与副作用并不兼容。 - Bergifor ... of
而不是 forEach
) - Bergiyield
、await
、return
、break
和 continue
。而且它更加简短。 - Bergiarray.prototype.reduce
和一些 destructuring
来实现:
var numberList = [1, 3, 7, 2, 4, 16, 22, 23];
var { evenList, oddList } = numberList.reduce((m, o) => {
o % 2 === 0 ? m.evenList.push(o) : m.oddList.push(o);
return m;
}, { evenList: [], oddList: []});
console.log("evenList: ", evenList);
console.log("oddList: ", oddList);
var _ = require('lodash');
var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var result = _.groupBy(numerList, function(ele) {
return ele%2;
});
console.log(result); //=> { '0': [ 2, 4, 16, 22 ], '1': [ 1, 3, 7, 23 ] }
如果您需要将数组分组为超过2个组,例如3个组,请执行以下操作:
var _ = require('lodash');
var numerList = [1, 3, 7, 2, 4, 16, 22, 23];
var result = _.groupBy(numerList, function(ele) {
return ele%3;
});
console.log(result); //=> { '0': [ 3 ], '1': [ 1, 7, 4, 16, 22 ], '2': [ 2, 23 ] }