javascript - 你如何遍历数组并只提取键 :value that are specific values?

标签 javascript arrays javascript-objects

我想遍历现有对象,只提取特定键以添加到新数组。

对象看起来像:

let lyricsData = {
   "success": true;
   "length": 50;
   "result": [
       {
         "id_track": 123,
         "haslyrics": true,
         "id_artrist": 234,
       },
       {
         "id_track": 567,
         "haslyrics": false,
         "id_artrist": 678,
    }
  ]
}

我只想提取结果如果“haslyrics”为真

这是我想出的代码块:

1  function findHasLyrics(lyricsData) {
2      if (lyricsData.length === 0) {
3          console.log("findHasLyrics", null);
4      } else {
5          let hasLyricsTrue = [];
6          for (let i=0; i<lyricsData.length; i++) {
7              if (lyricsData.result[i].haslyrics === true) {
8                  hasLyricsTrue.push(lyricsData.result[i]);
9              };
10             console.log("findHasLyrics", hasLyricsTrue);
11         };
12     };
13 };

密码在哪里破解?我该如何解决?

提前致谢。

解决方案(已编辑)。感谢@StepUp 和@Ankita。

我需要保留 if-else 语句。 lyricsData 是动态的,有时长度为 0。在这种情况下,我需要通过函数传递 null。

function findHasLyrics(lyricsData) {
    if (lyricsData.length === 0) {
        displayLyricsApi(null);
    } else {
        function findHasLyrics(lyricsData) {
            return lyricsData.result.filter(f => f.haslyrics)
    };
        formatQueryLyrics(findHasLyrics(lyricsData));
    };
}

最佳答案

只需使用filter方法:

lyricsData.result.filter(f=> f.haslyrics)

在你的情况下:

function findHasLyrics(lyricsData) {
    return return lyricsData.result.filter(f=> f.haslyrics);
};

一个例子:

var data = {
    "success": true,
    "length": 50,
    "result": [{
        "id_track": 123,
        "haslyrics": true,
        "id_artrist": 234,
      },
      {
        "id_track": 567,
        "haslyrics": false,
        "id_artrist": 678,
      }
    ]
  };

 function findHasLyrics(lyricsData) {
    return lyricsData.result.filter(f=> f.haslyrics)
};

console.log(findHasLyrics(data));

关于javascript - 你如何遍历数组并只提取键 :value that are specific values?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59542859/

相关文章:

javascript - 制作新圆标记时删除圆标记

java - 如何使用混合数据类型在泛型中初始化数组

javascript - 如何将字符串转换为对象表示法

arrays - 如何过滤掉数组的数组

javascript - jQuery 从表单字段创建对象

javascript - LokiJS 与标准 Javascript 对象访问

javascript - 当我的 Controller 执行功能时显示加载图像

javascript - 将中间件添加到一行/函数中的所有 firebase 函数

javascript - 如何查找集合中特定模型属性的总数?

arrays - 对象类型的变量作为数组行为不当