gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 10:57:10 25 4
gpt4 key购买 nike

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

对象看起来像:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com