如何在JavaScript中的对象中打印两个数组列表

时间:2018-08-29 11:41:06

标签: javascript arrays

我有一个像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]}

谢谢。

4 个答案:

答案 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);