我有一个像var myArr = [0,-1,2,-3,4,-5,6];
我想以
的数组格式分隔所有正号和负号 positiveArr = [0,2,4,6]
和negativeArr = [-1,-3,-5]
。
然后喜欢以对象格式打印两个数组。
最终预期结果类似于对象:
{Positive: [0,2,4,6], Negative: [-1,-3,-5]}
谢谢。
答案 0 :(得分:1)
您可以在Array.prototype.reduce
的帮助下完成此操作:
const myArr = [0,-1,2,-3,4,-5,6];
const result = myArr.reduce((all, item) => {
const key = item >= 0 ? 'Positive' : 'Negative';
all[key].push(item);
return all;
}, {Positive: [], Negative: []});
console.log(result);
答案 1 :(得分:0)
如果您需要使用JavaScript进行操作,则可以这样做
let myArr = [0,-1,2,-3,4,-5,6];
let obj = {Positive: myArr.filter(e => e < 0), Negative: myArr.filter(e => e >= 0)};
console.log(obj);
答案 2 :(得分:0)
就我所看到的数组定义而言,您正在使用JavaScript-不要忘记添加标签javascript
。
您需要以下输出:
var obj = {positive: new Array(), negative: new Array()};
遍历所有元素一次,并将它们添加到正确的数组中:
var myArr = [0,-1,2,-3,4,-5,6];
var obj = {positive: new Array(), negative: new Array()};
myArr.forEach(i => {
if (i>=0) { obj.positive.push(i) } else { obj.negative.push(i); }
});
console.log(JSON.stringify(obj));
结果obj
将具有以下数组:
negative : (3) [-1, -3, -5]
positive : (4) [0, 2, 4, 6]
用JSON.stringify(obj)
打印出来的结果是:
{"positive":[0,2,4,6],"negative":[-1,-3,-5]}
答案 3 :(得分:0)
您可以很明确,并且完全可以找到
const numbers = [0, -1, 2, -3, 4, -5, 6];
const positives = numbers.filter(number => number >= 0);
const negatives = numbers.filter(number => number < 0)
const results = {positives: positives, negatives: negatives}
console.log(results); // {positives: [0, 2, 4 ,6], negatives: [-1, -3, -5]}
我附上了一个可执行示例
const numbers = [0, -1 , 2, -3, 4, -5, 6];
const positives = numbers.filter(number => number >= 0);
const negatives = numbers.filter(number => number < 0);
const results = {positives: positives, negatives: negatives};
console.log(results);