【问题标题】:Javascript - Slicing an array of objectsJavascript - 切片对象数组
【发布时间】:2020-08-07 09:51:21
【问题描述】:

我从一个返回 1380 个对象数组的 API 返回一个对象数组,我只需要索引 116 - 137 处的对象。我研究了 Array.prototype.slice()。根据我的研究,我相信您需要 for 循环遍历当前数组以便对对象数组进行切片,这是我正在尝试做的事情。

我正在尝试创建一个新的对象数组,其中包含我只需要的对象。哪些是索引 116 - 索引 137。当控制台在拼接方法之后记录我的新数组时,我的控制台中没有返回任何内容。

这是我的代码

    function drawPercentageDifference(data) {


for (var i = 0; i < data.Results.Data; i++) {

    var caArray = data.Results.Data.slice(115, 137)

    console.log(caArray, "cAArray")

}
}

这是控制台记录原始数组时的结果

console.log(data.Results.Data)
Array(1380) [ {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, … ]

对于这种情况是否需要for循环?

我最初确实尝试过这样切片

    function drawPercentageDifference(data) {

caArray = data.BEAAPI.Results.Data.toString().slice(115, 137)
console.log(caArray)
    }
}

这导致forString is not a function 和我的console.log for caArray 返回object object 但根据我正在阅读的内容,我相信我无法做到,因为它是一个对象数组而不是字符串。

【问题讨论】:

  • 为什么需要循环播放?
  • 当控制台在 splice 方法之后记录我的新数组时,我的控制台中没有返回任何内容。 如果没有任何日志,听起来数组正在异步填充(尽管我很惊讶没有抛出错误)。你能发布更多周围的代码,在哪里进行 API 调用?
  • 我不知道是否需要。我尝试了下面的切片方法,我收到一个错误,“toString”不是一个函数。在查看了该错误后,我遇到了使用 for 循环进行切片的问题。如果这不是必需的,那对我来说没问题我只是不确定在尝试切片数组或对象时应该采取哪些步骤
  • 在拼接方法之后
  • 好的,这听起来像是 X/Y 问题。您在切片时遇到错误,因此您尝试提出修复,但现在您在尝试修复时遇到了问题。请向我们展示原始问题。

标签: javascript for-loop slice


【解决方案1】:

我能够解决我的问题。感谢所有评论的人。 for 循环不是必需的,在删除 .toString() 方法后,我收到了我期望的结果。

最终答案 caArray = data.BEAAPI.Results.Data.slice(115, 137) console.log(caArray)

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2018-06-20
    • 2021-12-28
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多