Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从动态生成的Json对象中删除值_Javascript_Arrays_Json - Fatal编程技术网

Javascript 如何从动态生成的Json对象中删除值

Javascript 如何从动态生成的Json对象中删除值,javascript,arrays,json,Javascript,Arrays,Json,{ "1": { "0": [ 7606, 7615, 7596, 7513, 7514, 7597, 7605, 7607, 7608, 7595 ], "87": [ 7514, 7605, 7644, 7607, 7608 ] }, "2": { "0": [ 7573, 7605, 7572, 7569 ] }, "3": { .... }您可以使用filter方法,该方法接受回调函数和Object.keys方法 forEach()方法为每个数组元素执行一次提供的函数 使用indexOf

{
"1": {
"0": [
7606,
7615,
7596,
7513,
7514,
7597,
7605,
7607,
7608,
7595
],
"87": [
7514,
7605,
7644,
7607,
7608
]
},
"2": {
"0": [
7573,
7605,
7572,
7569
]
},
"3": { ....

}
您可以使用
filter
方法,该方法接受回调函数和
Object.keys
方法

forEach()
方法为每个数组元素执行一次提供的函数

使用
indexOf()
返回数组中可以找到给定元素的第一个索引,如果该元素不存在,则返回-1

filter
方法创建一个新的数组,其中包含通过提供的函数实现的测试的所有元素

forEach
用于迭代对象键,然后使用
filter
方法从数组中删除项(也存在于给定数组中的项
[76057608761573]

您还可以使用
includes
方法检查给定数组中是否存在项

json[key][subkey]=json[key][subkey].filter(function(item){
  return !array.includes(item);
});
let数组=[760576087615773];
让json={
"1": {
"0": [
7606,
7615,
7596,
7513,
7514,
7597,
7605,
7607,
7608,
7595
],
"87": [
7514,
7605,
7644,
7607,
7608
]
},
"2": {
"0": [
7573,
7605,
7572,
7569
]
}
}
Object.keys(json).forEach(函数(键){
Object.keys(json[key]).forEach(函数(子键){
json[key][subkey]=json[key][subkey]。过滤器(函数(项){
返回数组。indexOf(item)==-1;
});
});
});

console.log(json);
您可以使用
filter
方法,该方法接受回调函数和
Object.keys
方法

forEach()
方法为每个数组元素执行一次提供的函数

使用
indexOf()
返回数组中可以找到给定元素的第一个索引,如果该元素不存在,则返回-1

filter
方法创建一个新的数组,其中包含通过提供的函数实现的测试的所有元素

forEach
用于迭代对象键,然后使用
filter
方法从数组中删除项(也存在于给定数组中的项
[76057608761573]

您还可以使用
includes
方法检查给定数组中是否存在项

json[key][subkey]=json[key][subkey].filter(function(item){
  return !array.includes(item);
});
let数组=[760576087615773];
让json={
"1": {
"0": [
7606,
7615,
7596,
7513,
7514,
7597,
7605,
7607,
7608,
7595
],
"87": [
7514,
7605,
7644,
7607,
7608
]
},
"2": {
"0": [
7573,
7605,
7572,
7569
]
}
}
Object.keys(json).forEach(函数(键){
Object.keys(json[key]).forEach(函数(子键){
json[key][subkey]=json[key][subkey]。过滤器(函数(项){
返回数组。indexOf(item)==-1;
});
});
});

console.log(json);
您注意到
Object.keys()
有助于实现这样一个动态对象的解决方案,这是正确的,但是这里有一个可能的递归实现,使用
Object.entries()

函数过滤器对象(o,v){
返回对象
.entries(o).map([key,value])=>{
if(数组.isArray(值)){
value=value.filter(n=>!v.includes(n))
}否则{
值=过滤器对象(值,v)
}
返回[键,值]
})
.reduce((o,[键,值])=>{
返回对象。赋值(o{
[键]:值
})
}, {})
}
console.log(过滤器对象({
"1": {
"0": [
7606,
7615,
7596,
7513,
7514,
7597,
7605,
7607,
7608,
7595
],
"87": [
7514,
7605,
7644,
7607,
7608
]
},
"2": {
"0": [
7573,
7605,
7572,
7569
]
}

},[7605,7608,7615,7573])
您注意到
Object.keys()
有助于实现这样一个动态对象的解决方案,这是正确的,但是这里有一个可能的递归实现,使用
Object.entries()

函数过滤器对象(o,v){
返回对象
.entries(o).map([key,value])=>{
if(数组.isArray(值)){
value=value.filter(n=>!v.includes(n))
}否则{
值=过滤器对象(值,v)
}
返回[键,值]
})
.reduce((o,[键,值])=>{
返回对象。赋值(o{
[键]:值
})
}, {})
}
console.log(过滤器对象({
"1": {
"0": [
7606,
7615,
7596,
7513,
7514,