使用foreach的过滤器阵列项目



我有一个关于foreach中过滤器数组的问题。因此,我希望使用外部变量filterKey的过滤器(比示例更大(数组。我认为,过滤后的newArrundefined,我的功能是正确的。你能解释什么是不正确的吗?

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))

使用array.filter方法

let array = [
{
  id: 123456, user: 'xyz'
},
{
  id:9787389023, user: 'zyx'
},
{
  id: 123456, user: 'che'
}
]
let newArray = array.filter((element) => element.id === 123456)
console.log(newArray)

使用.filter,并且您可以在不使用foreach的情况下过滤结果设置,因为它会绕过整个数组。

var find = 123456;
var arr = [
  {
    id: 123456,
    user: 'john'
  },
  {
    id: 9787389023,
    user: 'leah'
  }
];
var results = arr.filter(function(node) {
  return node.id === find;
});
console.log(results);

最新更新