【问题标题】:What's the best way to delete specific characters in a JavaScript array?删除 JavaScript 数组中特定字符的最佳方法是什么?
【发布时间】:2019-05-03 00:39:46
【问题描述】:

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

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

我需要删除除高价之后的所有内容。我能做到这一点的最有效方法是什么?

我尝试弹出单个元素,但我不禁觉得好像有一种更有效/更简单的方法来做到这一点。

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

【问题讨论】:

  • 这是 JSON 对象,最终结果不能只是 235.86,它必须是 [ {"open": 235.86 } ]
  • 考虑相反的方法并将你想要的内容提取到一个新的对象/数组中
  • 我正在寻找答案 :)
  • @baranskistad 为什么不能提取一个 JSON 字段的值并将其粘贴到一个数组中?!

标签: javascript arrays database element


【解决方案1】:

下面的代码应该可以工作。它足够高效: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

【讨论】:

    【解决方案2】:

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

    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 文档以了解 map 方法,Array.prototype.map()

    注意:以上示例使用 ECMAScript 6 箭头函数和隐式返回。它在功能上等同于:

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

    【讨论】:

      【解决方案3】:

      您可以在这种情况下使用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函数的信息。

      【讨论】:

      • 您能否提供指向reduce(文档)的链接?不是在 cmets 中,而是 editing your answer
      【解决方案4】:

      这应该可行:

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

      【讨论】:

      • 这是一个提供答案的部分,而不是问题。 stackoverflow.com/help/how-to-answer
      • 最好不要作为反问句来回答。 This is not a forum。如果您想征求回复,请在 cmets 中对您的答案进行回复(或者在 cmets 中对问题进行回复)。另外,最好在代码中提供解释。
      猜你喜欢
      • 2011-10-03
      • 2022-01-04
      • 2010-10-17
      • 2011-05-31
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      相关资源
      最近更新 更多