删除 JavaScript 数组中特定字符的最佳方法是什么?

What's the best way to delete specific characters in a JavaScript array?

目前,我有一个巨大的 JavaScript 数组,其中每个元素都是这样的:

[{"open":235.86,
  "high":247.13,
  "low":231.5,
  "close":244.1,
  "volume":55025735,
  "date":"2019-05-01T21:00:00.000Z"}
  ...

我需要删除除高价之后的所有内容。最有效的方法是什么?

我试过弹出单个元素,但我忍不住觉得好像还有更多 efficient/easier 方法可以做到这一点。

所以希望结束数组只是 [235.86]

下面的代码应该可以工作。它足够有效 :D

for (i in arrayName){
   // Loops through array
   delete arrayName[i].high
   delete arrayName[i].low
   delete arrayName[i].close
   delete arrayName[i].volume
   delete arrayName[i].date
   // Deletes unwanted properties
}
console.log(arrayName)
// Print output

这应该有效:

your_array.map((item) => {
  return item.high
})

您可以在这种情况下使用 reduce。例子

var temp = [{"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735, "date":"2019-05-01T21:00:00.000Z"}];
var highValArray = temp.reduce((arr, t) => {
    return arr.concat(t['high']);
}, []);

您可以在 MDN website 了解更多关于 reduce 函数的信息。

一个可能的解决方案是将数组映射到一个新数组,如下所示:

const yourArray = [
  {"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
  {"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(el => el.open);
// mappedArray = [235.86, 257.52]

查看映射方法的 MDN 文档,Array.prototype.map()

注意:上面的例子使用了 ECMAScript 6 箭头函数和隐式 returns。它在功能上等同于:

const yourArray = [
  {"open":235.86, "high":247.13, "low":231.5, "close":244.1, "volume":55025735},
  {"open":257.52, "high":234.53, "low":220.2, "close":274.1, "volume":23534060},
]
const mappedArray = yourArray.map(function(el){
  return el.open
});