繁体   English   中英

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

[英]How to print two array lists in an object in JavaScript

我有一个像var myArr = [0,-1,2,-3,4,-5,6];的数组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]}

谢谢。

您可以借助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); 

如果您需要使用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); 

据我看到的数组定义,您正在使用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]}

您可以很明确,并且完全可以找到

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM