Javascript 通过比较数组项从数组中删除项
输入阵列: [“临时/1/休息室/空”, “临时/1/休息室/66,66,66,66,66,66,66,66,64,64,64,64…,64,64,64,64,64”,“临时/2/休息室/空”, “临时工/3/休息室/空的”] 我有一个如上所示的元素数组。 每个项目有四个部分,用(“/”)分隔。 如果任何两个项目的前三部分相同,第四部分不同。我想删除第四部分为“空”的项目 例如: 如果元素的第四部分在一个项中有“空”,而在另一个元素中有一些数据,如66,64,…,64,64,64。 我想删除数组中第四部分为空的项 我希望输出如下: [“临时/1/休息室/66,66,66,66,66,66,64,64,64,64…,64,64,64,64,64,64,64”, “临时工/2/休息室/空”, “临时工/3/休息室/空的”] 我尝试拆分数组项:Javascript 通过比较数组项从数组中删除项,javascript,arrays,Javascript,Arrays,输入阵列: [“临时/1/休息室/空”, “临时/1/休息室/66,66,66,66,66,66,66,66,64,64,64,64…,64,64,64,64,64”,“临时/2/休息室/空”, “临时工/3/休息室/空的”] 我有一个如上所示的元素数组。 每个项目有四个部分,用(“/”)分隔。 如果任何两个项目的前三部分相同,第四部分不同。我想删除第四部分为“空”的项目 例如: 如果元素的第四部分在一个项中有“空”,而在另一个元素中有一些数据,如66,64,…,64,64,64。 我想删除数组
for(i=0;i<arr.length;i++){
stringType = message.split('/')[0];
day = message.split('/')[1] ; //day
room = message.split('/')[2] ;
settingData = message.split('/')[3] ;
}
for(i=0;i您可以使用此代码。它可以完美地满足您的需要
var resultData=[“temp/1/休息室/空”、“temp/1/休息室/66,66,66,66,66,66,66,64,64,64…”、64,64,64,64”、“temp/2/休息室/空”、“temp/3/休息室/空”];
var数据=结果数据;
对于(var i=0;i,您可以按如下方式执行:
- 首先,为哈希映射中的每个数组值存储它所具有的“第四个值”
- 接下来,过滤数组并显式删除第四个值为空且存在其他第四个值的数组值(我们可以在创建的哈希映射中检查这一点)
函数拆分值(值,ignoreCase){
设split=value.split('/'),
key=split.slice(0,3).join('/'),
val=split.slice(3.join('/');
如果(忽略案例){
key=key.toLowerCase();
}
返回[key,val];
}
功能过滤器(arr,ignoreCase=false){
var byKey={};
for(arr的let值){
let[key,val]=splitValue(value,ignoreCase);
如果(!byKey.hasOwnProperty(key)){
byKey[key]=[];
}
如果(val!=“空”){
按键[键]。按键(val);
}
}
返回arr.filter((值)=>{
let[key,val]=splitValue(value,ignoreCase);
返回(val!='empty'| | byKey[key]。长度===0);
});
}
console.log(过滤器([
“临时工/1/休息室/空”,
“临时工/1/休息室/什么的”,
“临时工/2/休息室/空”,
“临时工/3/休息室/空的”]);
console.log(过滤器([
“临时工/1/休息室/什么的”,
“临时工/3/厨房/什么的”,
“临时工/1/休息室/空”,
“临时工/3/厨房/空”]);
console.log(过滤器([
“临时工/1/休息室/什么的”,
“临时工/3/厨房/什么的”,
“临时工/1/休息室/空”,
“temp/3/厨房/空的”],true));
。作为控制台包装器{
最大高度:100%!重要;
}
放一个工作片段,你的问题太宽泛了检查答案。我相信这对你会很有用。嘿,非常感谢。这对我很有帮助。但是如果我有var arr=[“temp/1/Lounge/something”,“temp/3/kitchen/something”,“temp/1/Lounge/empty”,“temp/3/kitchen/empty”]之类的输入。我想要这样的输出:var arr=[“临时工/1/休息室/某物”、“临时工/3/厨房/某物”]我该怎么办?问题是,Kitchen
与Kitchen
不同,因为一个是大写的K
,另一个是小写的K
。我更新了我的答案来解决这个问题,并对它们一视同仁。这就是我想要的。非常感谢您快速重播。