gpt4 book ai didi

jquery - 从对象数组中查找特定对象的所有元素

转载 作者:行者123 更新时间:2023-12-01 05:50:47 25 4
gpt4 key购买 nike

我发布了question here但没有得到任何对我有用的答案(可能是我的问题不够清楚)。所以我再次将其发布在这里,清楚地表明我想要什么。

下面是我可以在控制台中看到的代码(它来自服务器,所以我不知道它的实际结构)。

result : {Object}
course : {Object}
name : English
list : {Object}
1 : {Object}
attr1 : value1
attr2 : value2
3 : {Object}
attr1 : value1
attr2 : value2
other : value-other
id : 1
course : {Object}
name : Spanish
list : {Object}
1 : {Object}
attr1 : value1
attr2 : value2
3 : {Object}
attr1 : value1
attr2 : value2
other : value-other
id : 2

基于此,我认为结构将是:

results = {
other: 'something',
id: '1',
courses: {list:{...},name:'English'}
}, {
other: 'again-something',
id: '2',
courses: {list:{...},name:'Spanish'}
}, {
other: 'again-something',
id: '3',
courses: {list:{...},name:'German'}
};

我想要的是:获取 result.course 的所有元素,其中 result.course.name = 'Spanish'

我尝试了下面的代码,但它返回一个空数组:

var test = $.grep(result, function(e) { return e.courses.name == 'Spanish'; });
console.log(JSON.stringify(test));

我猜问题是 result 本身是一个对象而不是数组。如果它是 result = [{...}]; 那么代码就会以某种方式工作。

result 本身就是一个对象时,谁能告诉我如何解决这个问题。

谢谢。

最佳答案

我不确定这是否是您场景中的确切对象层次结构,但是:

我创建了一个对象数组,如下所示:

var o = [{
result: {
course: {
name: "English",
list: [{ attr1: "v1", attr2: "v2" }, { attr1: "v5", attr2: "v6" }],
other: "value-other",
id: "1"
}
}
},
{
result: {
course: {
name: "Spanish",
list: [{ attr1: "v1", attr2: "v2" }, { attr1: "v5", attr2: "v6" }],
other: "value-other",
id: "1"
}
}
},
{
result: {
course: {
name: "French",
list: [{ attr1: "v1", attr2: "v2" }, { attr1: "v5", attr2: "v6" }],
other: "value-other",
id: "1"
}
}
}]

执行var test = $.grep(o, function(e) { return e.result.course.name == "Spanish"; } );返回类(class)名称为西类牙语的对象(数组中的第二个元素)。

Grep 需要一个数组 - o 是我的对象数组,其结构为结果 -> 类(class) -> 名称、列表、其他、id。

然后,Grep 循环遍历数组的每个元素 - 数组的每个元素都是一个具有单个属性的对象 - “结果” - 其内容又是一个“类(class)”对象,其属性最终是名称、列表、其他和 id。

这就是为什么在 grep 中我访问 e.result.course.name。

希望这能带来一些启发。

关于jquery - 从对象数组中查找特定对象的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22602824/

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