gpt4 book ai didi

javascript - 选择具有特定元素值的数组

转载 作者:行者123 更新时间:2023-11-30 14:55:35 24 4
gpt4 key购买 nike

这让我抓狂,几个小时以来我一直在努力弄清楚如何做这件事。

我想要做的是选择所有具有特定值的数组项。这是最容易通过示例解释的:

我有一个数组,叫做media[]。它拥有我媒体库中的所有媒体。它有两个值得注意的属性:pathgallery,或者media[x][0]media[x][1 ]

我想选择属于某个画廊的所有媒体对象,然后将它们添加到该画廊。这就是我挣扎的地方,它让我发疯。

以下是我尝试执行此操作的失败尝试...这是一些非常困惑的代码(而且大部分毫无意义),我提供它只是为了让您了解我对此有多么无知。请注意,我现在拥有的所有代码实际上都没有尝试任何事情;到目前为止,我所做的一切都以损坏的 forwhile 循环结束,要么什么都不做,要么让 Chrome 崩溃。

// this function is meant to return an array of all media items
// that belong in a certain gallery... didn't get that far because
// the loops tripped me up
function getTheMedia (galNum) {
var output = [];
for (var i = 0; i < media.length; ++i) {
// I tried using an if statement here to check if the
// media[i][1] == galNum, and if so, add it to the output
// but that didn't work
output.push(media[i]);
}
return output;
}

// this function was actually my first attempt but I kept running into
// the same issue as above
function fillGal () {
/*
var output = [];
for (var i = 0; i < Gallery.length; ++i) {
output.push(Gallery[i]);
}
*/
var output = [];
var i = 0;
while (i < media.length) {
output.push(i);
i++;
}
console.log(output);
}

看到我有点筋疲力尽并且对原地打转感到沮丧(...循环?啊哈...),我真正想要的是一种只选择上面指定的那些特定数组项的方法.其他所有内容(将它们添加到图库等)我可以自己弄清楚。

否则我将不得不回到旧方法:为每个“画廊”定义单独的media[]数组(mediaThisGallery, mediaThatGallery 等),然后在最后将它们组合起来得到“allMedia”。我不想这样做的唯一原因是因为我希望能够更改媒体项目所属的画廊...这必须是可能的,对吧?

提前致谢!很抱歉分散注意力。如果标题有点偏离,我也很抱歉。

编辑:

var media = [];

media[0] = ['0.png', 0, 'index'];
media[1] = ['0.png', 0];

media[2] = ['new/316.png', 1, "316"];
media[3] = ['new/kitties.jpg', 1, "D'aww kitties!!"];
media[4] = ['new/home.jpg', 1, "\"I'm Going Home\""];
media[5] = ['new/3.mp4', 1, "Crucible Carnage"];
media[6] = ['new/942.jpg', 1, "this is straight for testing purposes like omg long ass title lol"];
media[7] = ['new/boom.mp4', 1, "Maximum Efficiency"];
media[8] = ['new/42.jpg', 1, "Moo"];

// this is only included as a quick fix so my working code doesn't break
// as my "production" code is using multiple arrays; Media is used
// to store only the selected array (current Gallery)
// in other words, ignore this
var Media = [];
Media = media;

var Gallery = [];
Gallery[0] = [mediaRoot, "index", media ];
Gallery[1] = [mediaRoot, "new", Media ];

这是相当随意的 atm。

请注意,我从多个数组转换为单个数组的主要原因是,我最终计划扩展此应用程序,并且我认为将所有媒体存储在单个“数据库”中更有意义。

最佳答案

那么你可以简单地使用 .filter() method 像这样:

var output = media.filter(function(m) {
return m[1] == galNum;
});

关于javascript - 选择具有特定元素值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326604/

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