【发布时间】:2018-11-02 13:49:25
【问题描述】:
假设我们有如下的 Objects 数组(真实的有 71000 个元素,但 4 个对象足以给你一个想法):
[
{
source: "France"
target: "Morocco"
timeN: "2008"
valueN: "252.35"
},
{
source: "France"
target: "Morocco"
timeN: "2009"
valueN: "424.12"
},
{
source: "France"
target: "Morocco"
timeN: "2010"
valueN: "152.24"
},
{
source: "France"
target: "Morocco"
timeN: "2011"
valueN: "-342.19"
}
]
如果valueN 为负数,我如何有效地交换最后一个对象上的source 和target 值?我想将valueN 与-1 相乘或调用Math.abs(),然后将source 更改为"Morocco" 和target 更改为"France"。
更新
虽然所有答案都很好,我已经接受了@Nina Scholz 的干净答案。但是,来自@Emil S. Jørgensen 的那个是性能最高的,一旦跟踪执行时间。我不知道为什么,但如果您不将其转换回 string、valueN,它似乎性能最高。
【问题讨论】:
-
在这种情况下,关于翻转最后一个对象的部分只是一个例子吗?更清楚地说,您是否希望将此翻转方法应用于数组中具有负值
valueN的任何 71,000 个对象,或者您是否总是想要翻转最终对象(即array[array.length - 1]中的对象)?.. . -
为什么只有最后一个对象?请添加 flipping 想要的结果。
-
您希望源和目标相互切换?
-
@WillemvanderVeen:我相信只有
valueN是-ve -
@Florian 提问时,请停留几分钟,以便您澄清评论中出现的问题和问题。您的帖子已经有 5 个答案,其中 2 个已删除,但试图帮助您的人仍在猜测您想要的结果是什么。投票结束时不清楚。
标签: javascript arrays object flip