在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