删除数组中对象的对象javascript

时间:2017-12-14 16:52:40

标签: javascript arrays object element

我已就此问题做过一些研究。我试图在控制台中操作一个计算值的数组:

{nodeVoltages: Array(11), totalPower: Array(1), xlength: Array(11)}
  nodeVoltages: Array(11)
    0:48
    1:47.71306060387108
    2:47.250273223993105
    3:46.59686907269243
    4:45.71876416434013
    5:44.53304242029258
    6:42.745236969423615
    7:Complex {re: 40.38334500994142, im:1.919295696316476, __ember1513267958317: "ember368"}
    8:Complex { re:39.55961661806138, im:3.8933604519196416, __ember1513267958317: "ember369"}

这个数组是通过我提出的一些数学运算动态创建的,所以没有我可以给你的输入数据。我试图使上面的数组看起来像这样:

{nodeVoltages: Array(11), totalPower: Array(1), xlength: Array(11)}
  nodeVoltages: Array(11)
    0:48
    1:47.71306060387108
    2:47.250273223993105
    3:46.59686907269243
    4:45.71876416434013
    5:44.53304242029258
    6:42.745236969423615
    7:40.38334500994142
    8:39.55961661806138

使用mathjs,我能够评估我的表达式并使用array.push命令将值动态添加到数组中并显示它们。但是,一旦在我的数组结果中弹出虚数值,我的代码就会中断。

如何从数组中删除这些虚数?换句话说,我需要删除" im:"在我将它们推送到显示的数组之前它们开始出现时的部分值。

我尝试使用我之前回答别人的问题(How do I remove a particular element from an array in JavaScript?)拼接命令找到的一些代码:

      var nodeVoltage2 = parser.eval(expression2);

//checks if there are imaginary values and removes them

            if ("im" in nodeVoltage2) {
              nodeVoltage2.splice(2,1)
            }

//adds value to result array for analysis

      nodeVoltages.push(nodeVoltage2);

但它在控制台中返回" im未定义"。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用数组map功能。 基本上,我们遍历数组。如果该项具有.re属性,则我们仅采用该值。如果没有.re属性,我们保持该值不变。

我们可以使用三元运算符和箭头函数以速记方式编写,或者使用三元运算符和箭头函数编写,或者我们可以用稍微冗长但传统的方式编写它,就像使用result



resultTwo