【问题标题】:how to create an array of unique items in an JSON response array?如何在 JSON 响应数组中创建一组唯一项?
【发布时间】:2021-04-30 07:05:42
【问题描述】:

我想将数组中的唯一项从以下响应推送到一个空数组,即

这里许多项目的标题键是相同的,我想将唯一项目推送到一个空数组中,我为此编写了以下函数:

const getPendingList = (data) => {
    if (data) {
      var stack = [];
      for (let i = 0; i < data.length - 1; i++) {
        if (data[i + 1].title !== data[i].title) {
          stack.push(data[i].title);
        }
      }
      console.log('stack', stack);
      return stack.length;
    }
  };

但是当我在这里控制台堆栈时,我没有得到最后一个独特的项目:

如果我将循环更改为

for (let i = 0; i < data.length; i++)

由于某些未知原因,我收到以下错误:

谁能让我知道我哪里出错了?任何线索都会很棒,如果需要任何其他信息以便更好地理解,请告诉我。

【问题讨论】:

    标签: arrays reactjs react-native react-native-android react-native-ios


    【解决方案1】:

    您收到最后一个元素的错误,因为您尝试检查它的下一个元素的属性,该元素不存在(因为当前元素是最后一个元素)。所以只要把你的代码改成这样就可以了:

      for (let i = 0; i < data.length - 1; i++) {
        if (data[i + 1] && data[i + 1].title !== data[i].title) {
          stack.push(data[i].title);
        }
      }
    

    【讨论】:

      【解决方案2】:

      问题在于这段代码

      for (let i = 0; i < data.length - 1; i++) {
          if (data[i + 1].title !== data[i].title) {
            stack.push(data[i].title);
          }
        }
      

      data.length - 1 更改为data.length

      【讨论】:

      • 已经尝试过这样做,但由于某种未知原因,我收到 TypeError: Cannot read property 'title' of undefined 如果我将其更改为 data.length,将添加上面的屏幕截图您可以检查
      猜你喜欢
      • 2020-02-26
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多