我希望你今天过得愉快。
这很直截了当。我有一个对象数组,我想在另一个数组的帮助下过滤掉它。场景如下所示:
var ob_array = [
{'a' : 1, 'col_2' : 'abc'},
{'a' : 2, 'col_2' : 'xyz'},
{'a' : 3, 'col_2' : 'jkl'}
];
var my_array = [1, 2];
预期输出:
var my_array = [
{'a' : 3, 'col_2' : 'jkl'}
]
尝试过的方法:
#1:
ob_array.filter(function(i){
my_array.forEach(function(q){
i['a'] == q
})
});
#2:
ob_array.filter(function(i){
for(var j in my_array){
i['a'] == j;
}
});
我主要倾向于使用过滤功能,因为我喜欢它。感谢您查看我的这个小问题。我感谢你的时间和努力。
使用过滤器
和包含
var ob_array = [
{'a' : 1, 'col_2' : 'abc'},
{'a' : 2, 'col_2' : 'xyz'},
{'a' : 3, 'col_2' : 'jkl'}
];
var my_array = [1, 2];
const res = ob_array.filter(({a}) => !my_array.includes(a));
console.log(res)
数组过滤器接受一个谓词,即返回true或false的回调。
你不返回布尔结果从你的谓词回调,你的代码可以修改如下返回false如果元素与关键a
存在于my_array
或true否则:
js lang-js prettyprint-override">var ob_array = [{
'a': 1,
'col_2': 'abc'
},
{
'a': 2,
'col_2': 'xyz'
},
{
'a': 3,
'col_2': 'jkl'
}
];
var my_array = [1, 2];
const res = ob_array.filter(function(i) {
for (var j of my_array) {
if (i['a'] === j) {
return false;
}
}
return true;
});
console.log(res);
您可以使用Array.includes,而不是迭代my\u Array
:
js prettyprint-override">var ob_array = [{
'a': 1,
'col_2': 'abc'
},
{
'a': 2,
'col_2': 'xyz'
},
{
'a': 3,
'col_2': 'jkl'
}
];
var my_array = [1, 2];
console.log(ob_array.filter(ob => !my_array.includes(ob.a)))
问题内容: 我有一个数组模型如下: 现在我有了一个Empid的数组。 所以现在我需要过滤第一个包含第二个中所有键的数组。 输出: 我可以使用循环进行此操作,但是由于我的模型对象中有100多个记录。我需要如何更好地处理此问题的建议。 我正在考虑创建一个自定义过滤器,但是您对此有何看法(如果可以,请提供示例代码来实现此目的)。 感谢您的帮助。 谢谢。 问题答案: 你可以做到这一点, 如果返回一个值,则
如何使用匹配数组的多个值从集合中获取对象。例如:我收集了以下数据
问题内容: 我有两个对象数组。我想基于PermissionObj过滤数据。 这是即将形成的数据库。这是permissionObj中的子数组的数组。 这是静态数据。我想比较基于PermissionObj的数据。 我正在尝试基于 对象 的 PermissionObj数组 过滤 对象 的 数据数组 。这是我尝试的代码。 如果PermissionObj值将与data值匹配。然后显示数据。 我接受的输出将是
问题内容: 我有两个阵列。我正在用PubSidebar过滤基于groupKey。 如果父母重视:日记或存款或任何价值或角色:公共,我在传递内容数组内的对象时遇到问题。我必须在基于的内容数组中传递值。 如果存在Journals and Deposits,则在内容数组内添加Journals and Deposit数据,包括公共数据。(三个对象) 如果存在Journals,则将Contents数组内的J
根据条件过滤一个对象数组,同时过滤掉未指定的键(key)。 使用 Array.filter() 根据断言 fn 过滤数组,以便返回条件为真值(truthy)的对象。 在过滤出来的数组上,使用 Array.map() 和 Array.reduce() 返回新的对象来过滤掉 keys 参数中未提供的键。 const reducedFilter = (data, keys, fn) => data.
问题内容: 鉴于此输入: 我正在尝试使用jq构造一个过滤器,该过滤器返回s的所有对象,这些s 的内部数组中 不 包含“数据” ,并且输出以换行符分隔。对于以上数据,我想要的输出是 我想我与此有点接近: 但过滤器不正确,并且无法编译(获取)。 问题答案: 很接近!在表达式中,您必须在之前使用管道()。 该滤波器产生预期的输出。 的JQ食谱具有语法的一个例子。 例如,我只想要类型键包含“ house”