在项目开发中经常会遇见对数组元素进行过滤的方法,你们有用过几种解决方法呢?
1、如何在对象数组中去除不符合条件的一个数组元素,并返回一个新的数组,请写出你的方法?
例如:
let arrayObject=[{fileId:"0001",name:"file0",size:"2000"},
{fileId:"0002",name:"file1",size:"2000"},
{fileId:"0003",name:"file2",size:"2000"},
{fileId:"0004",name:"file3",size:"2000"}
,{fileId:"0005",name:"file4",size:"2000"}....],
其中数组元素中fileId,是每个元素的唯一标识ID;请过滤掉fileId=="00025"的数组元素,并返回新的对象数组:
方法1:
/**
* @description 数组中过滤出不符合条件的对象数组;
* 使用arrayObject.filter(item=>{return new arrayObject});
* @return new Array;
* */
toFilterConditionArray(arrayobject,fileId){
return arrayobject.filter(item=>{
return item.fileId!==fileId;
})
}
相关笔试题目: 已知过滤条件为一个数组:
let ruleList=[
{"type":"02",message:"未通过校验规则02"},
{"type":"03",message:"未通过校验规则03"},
{"type":"07",message:"未通过校验规则07"},
{"type":"11",message:"未通过校验规则11"},
{"type":"12",message:"未通过校验规则12"},
{"type":"13",message:"未通过校验规则13"},
{"type":"09",message:"未通过校验规则09"},
{"type":"10",message:"未通过校验规则10"},
{"type":"08",message:"未通过校验规则08"}];
//待校验数组为:
let filterTypes=[{fileId:"0001",name:"file0",size:"2000",type:"07"},
{fileId:"0002",name:"file1",size:"2000",type:"12"},
{fileId:"0003",name:"file2",size:"2000",type:"10"},
{fileId:"0004",name:"file3",size:"2000",type:"08"},
{fileId:"0005",name:"file4",size:"2000",type:"03"}
],
如上所示:
定义一个过滤条件数组ruleList,以及一个待校验数组:filterTypes,两个数组中的对象元素都有一个key值为type的属性,
请过滤出ruleList数组元素的key值为type属性,对应的value值,未在filterTypes数组元素对应属性值出现的所有数组元素;
请写出一个方法:
输入:params:ruleList,filterTypes;
输出:newRuleList=[
{"type":"02",message:"未通过校验规则02"},
{"type":"11",message:"未通过校验规则11"},
{"type":"13",message:"未通过校验规则13"},
{"type":"09",message:"未通过校验规则09"}
]
代码1:
2、简单元素数组,如何去除数组元素中的指定元素,可以改变原数组/(不改变原数组)
例如: let arrayObj=["adele","mongo","delt","selfcure"]
方法1:
removeListItem(arrayObj, val) {
let index = arrayObj.indexOf(val);
if (index > -1) {
arrayObj.splice(index, 1);
}
},