Javascript 使用forEach筛选数组项

Javascript 使用forEach筛选数组项,javascript,foreach,filter,Javascript,Foreach,Filter,我有一个关于forEach中的过滤器数组的问题。因此,我希望使用外部变量filterKey对数组进行筛选(比示例中的数组大)。我认为我的函数在过滤后是正确的newArr是undefined。你能解释一下什么是不正确的吗 var filterKey = 123456, var array = [{ ratings:{ users:[id: 123456]}, user: xyz }, {

我有一个关于forEach中的过滤器数组的问题。因此,我希望使用外部变量
filterKey
对数组进行筛选(比示例中的数组大)。我认为我的函数在过滤后是正确的
newArr
undefined
。你能解释一下什么是不正确的吗

var filterKey = 123456,
var array = [{ 
              ratings:{ users:[id: 123456]}, user: xyz
             },
             {
              ratings:{users:[id:9787389023]}, user:zyx
            }],
还有我的过滤功能

var newArr = array.forEach((ele) =>
                ele.ratings.users.filter((newEl) =>
                    newEl.id == filterKey))

使用.filter,您将能够在不使用foreach的情况下过滤结果集,因为它将在整个数组中循环

var find=123456;
var arr=[
{
身份证号码:123456,
用户:“约翰”
},
{
身份证号码:9787389023,
用户:“leah”
}
];
var结果=arr.filter(函数(节点){
返回node.id==find;
});

控制台日志(结果)使用.filter,您将能够在不使用foreach的情况下筛选结果集,因为它将在数组中循环

var find=123456;
var arr=[
{
身份证号码:123456,
用户:“约翰”
},
{
身份证号码:9787389023,
用户:“leah”
}
];
var结果=arr.filter(函数(节点){
返回node.id==find;
});

控制台日志(结果)使用array.filter方法

let数组=[
{
id:123456,用户:“xyz”
},
{
id:9787389023,用户:“zyx”
},
{
id:123456,用户:“che”
}
]
让newArray=array.filter((element)=>element.id==123456)

console.log(newArray)
使用array.filter方法

let数组=[
{
id:123456,用户:“xyz”
},
{
id:9787389023,用户:“zyx”
},
{
id:123456,用户:“che”
}
]
让newArray=array.filter((element)=>element.id==123456)

console.log(newArray)
.forEach()
不返回任何内容。您可能正在查找示例中的
元素的实际值
数组
没有
.rating.users
属性来保存数组?!天啊,我忘了换数组了。。。很抱歉弄乱了
id:123456
在数组文本中是无效语法。您的意思是在每个数组中都有一个对象吗?预期的结果是什么?
。forEach()
不会返回任何内容。您可能正在查找示例中的
元素的实际值
数组
没有
.rating.users
属性来保存数组?!天啊,我忘了换数组了。。。很抱歉弄乱了
id:123456
在数组文本中是无效语法。你的意思是在每一个数组中都有一个对象吗?预期的结果是什么?把我揍一顿。尼斯:)把我揍了一顿。尼斯:)