我已就此问题做过一些研究。我试图在控制台中操作一个计算值的数组:
{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未定义"。
非常感谢任何帮助!
答案 0 :(得分:0)
您可以使用数组map
功能。
基本上,我们遍历数组。如果该项具有.re
属性,则我们仅采用该值。如果没有.re
属性,我们保持该值不变。
我们可以使用三元运算符和箭头函数以速记方式编写,或者使用三元运算符和箭头函数编写,或者我们可以用稍微冗长但传统的方式编写它,就像使用result
resultTwo