在javascript中查找并删除内部数组值
我有一个嵌套数组。我需要查找并从内部数组中删除值在javascript中查找并删除内部数组值,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有一个嵌套数组。我需要查找并从内部数组中删除值 mainArray = [ { name:"name1", idArray:["1", "2", "3"] } { name:"name1", idArray:["1", "2", "3", "5", "2"] } { name:"name1",
mainArray = [
{
name:"name1",
idArray:["1", "2", "3"]
}
{
name:"name1",
idArray:["1", "2", "3", "5", "2"]
}
{
name:"name1",
idArray:["1", "2", "3", "4"]
}
]
我需要一个如下的答案:
mainArray = [
{
name:"name1",
idArray:["1", "3"]
}
{
name:"name1",
idArray:["1", "3", "5"]
}
{
name:"name1",
idArray:["1", "3", "4"]
}
]
这意味着我要从id为“2”的idArray中删除值。你能给我一个来自lodas的答案吗,这会更舒服。使用
lodash
可能很难理解操作背后的逻辑。这可以使用简单的JavaScript实现,如下所示:
var removeVal='2';
变量mainArray=[
{
名称:“名称1”,
地址:[“1”、“2”、“3”]
},
{
名称:“名称1”,
地址:[“1”、“2”、“3”、“5”、“2”]
},
{
名称:“名称1”,
地址:[“1”、“2”、“3”、“4”]
}
];
mainArray.forEach(函数(obj){
var指数=对象idArray指数(removeVal);
如果(索引!=-1){
定向拼接(索引1);
}
});
console.log(mainArray)
您可以映射
以循环通过阵列。克隆每个元素并使用filter
idArray
let main数组=[{
名称:“名称1”,
地址:[“1”、“2”、“3”]
},
{
名称:“名称1”,
地址:[“1”、“2”、“3”、“5”、“2”]
},
{
名称:“名称1”,
地址:[“1”、“2”、“3”、“4”]
}
];
让toRemove='2';
让result=mainArray.map(o=>{
o=Object.assign({},o);//克隆对象不会影响原始数组
o、 idArray=o.idArray.filter(v=>v!==toRemove);
返回o;
});
控制台日志(结果)代码>查看此链接:
它们使用“拼接”删除阵列中的元素并调整大小。尝试将其用于多维数组。这就是我认为它应该如何处理问题mainArray[0]。拼接(2,3)。迭代数组mainArray
,并从idArray
数组中找到唯一的值
mainArray.forEach(function(data){
data.idArray = findUnique(data.idArray)
});
console.log(mainArray);
function findUnique(a){
return a.filter(function(value){ return a.filter(function(val){ return val === value}).length === 1});
}
欢迎来到堆栈溢出!请拿着这本书,通读一遍,特别是做你的研究,看看相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会乐意帮忙的。祝你好运谢谢你,伙计!。。我还需要一个帮手,艾达瑞空无一人。哪些对象需要完全删除!如何删除?删除整个{name:“name1”,idArray:[“1”,“2”,“3”,“4”]}
或仅删除idArray
@vijayaganthwhole object thing@eddie如果{name:“name1”,idArray:[“2”]}
,应该删除吗@vijayaganthyeah正是@Eddie