如何在Java脚本中过滤数组中的多个值

how to filter multiple values from an array in javascript(如何在Java脚本中过滤数组中的多个值)
本文介绍了如何在Java脚本中过滤数组中的多个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个json元素数组。我想根据特定值过滤数组。下面是数组。

var arr = [
{name: bobby, id: 1, age: 23},
{name: charls, id: 2, age: 28},
{name: indi, id: 3, age: 23},
{name: charlie, id: 4, age: 25}]
从上面的数组中,我想只过滤名字是Bobby&;&;indi的员工。我尝试过以下代码。
var filteredArray;
for (var i =0 ; i < arr.length; i++){
    if(arr[i].name === 'bobby' || arr[i].name === 'indi'){
        filteredArray.push(arr[i]);
    }
}
但通过上面的代码,我需要多次提到OR(||)条件,这些名称的数量可能会发生变化,比如1次我只想要有Bobby名字的员工,而其他时间我想要Bobby、Indi和Charlie。有没有办法让它充满活力。如果是的话,请告诉我。提前谢谢。

推荐答案

您可以将需要筛选的名称存储在数组中,然后检查名称是否存在于数组中

例如

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
var arr = [
    {name: "bobby", id: 1, age: 23},
    {name: "charls", id: 2, age: 28},
    {name: "indi", id: 3, age: 23},
    {name: "charlie", id: 4, age: 25}
]
const names = ["bobby", "indi"];

const filtered = arr.filter((item)=>{
  return names.includes(item.name)
});

console.log(filtered)

对于较老的(例如IE11)浏览器-

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
var arr = [
    {name: "bobby", id: 1, age: 23},
    {name: "charls", id: 2, age: 28},
    {name: "indi", id: 3, age: 23},
    {name: "charlie", id: 4, age: 25}
]
const names = ["bobby", "indi"];

const filtered = [];

for(var i =0; i<arr.length - 1; i++){
  if(names.indexOf(arr[i].name) > -1){
      filtered.push(arr[i])
  }
}

console.log(filtered)

这篇关于如何在Java脚本中过滤数组中的多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)