gpt4 book ai didi

jquery - 嵌套 jQuery.grep

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

我们可以使用$.grep来过滤掉不需要的数组项,所以

data = $.grep(jsonstr, function(d) {
return d.attr == "x";
})

将仅返回那些 attr == x 的数组对象

如果我想类似地过滤位于对象下的数组,我可以使用 $.grep 来做到这一点吗?所以

    data = $.grep(jsonstr2, function(d) {
$.grep(d.GL2_ACCTS, function(gl2) {
return (gl2.localamt > lBound && gl2.localamt < uBound);
});
return d.DOC_TYPE == doc;
});

是否应该过滤位于 data 中每个元素内的 arrElement 数组?

数据如下:

jsonstr =  
[{
DOC_TYPE: "1A",
GL1_ACCOUNT: "Other|Mark Up(Other)",
GL2_ACCTS: [
{name: "Expenses|Conferences(Expenses)", localamt: 123, count: 2},
{name: "Expenses|Consultancy(Expenses)", localamt: 49, count: 1}
]
}]

我在更改 lBound 和 uBound 时调用此函数。它只返回所有内容,不会发生过滤。

最佳答案

您需要将过滤后的数组存储回对象中。

data = $.grep(jsonstr2, function(d) {
d.GL2_ACCTS = $.grep(d.GL2_ACCTS, function(gl2) {
return (gl2.localamt > lBound && gl2.localamt < uBound);
});
return d.DOC_TYPE == doc;
});

请注意,这将过滤掉外部 $.grep 未返回的对象中的帐户。如果您不想这样做,则需要先进行 DOC_TYPE 检查:

data = $.grep(jsonstr2, function(d) {
if (d.DOC_TYPE == doc) {
d.GL2_ACCTS = $.grep(d.GL2_ACCTS, function(gl2) {
return (gl2.localamt > lBound && gl2.localamt < uBound);
});
return true;
} else {
return false;
}
});

关于jquery - 嵌套 jQuery.grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33676663/

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