Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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 抓取过滤数组的父对象_Javascript - Fatal编程技术网

Javascript 抓取过滤数组的父对象

Javascript 抓取过滤数组的父对象,javascript,Javascript,我试图比较两个数组的不同值,并相应地过滤掉它们。我设法得到了我想要的儿童价值观的过滤器。但是,我想知道是否有可能我还可以获取父数组的过滤结果,而不仅仅是子数组 这是我的密码: let arrayOne={ 小球:[ “随机球”, “另一个球”, “大球”, “小球” ], mediumBall:[ “中等大小”, “中等大小球”, “随机Mediumball”, “无热球” ] } 设arrayTwo={ 小球:[ “随机球”, “另一个球”, “大不一样”, “Smallball与众不同”

我试图比较两个数组的不同值,并相应地过滤掉它们。我设法得到了我想要的儿童价值观的过滤器。但是,我想知道是否有可能我还可以获取父数组的过滤结果,而不仅仅是子数组

这是我的密码:

let arrayOne={
小球:[
“随机球”,
“另一个球”,
“大球”,
“小球”
],
mediumBall:[
“中等大小”,
“中等大小球”,
“随机Mediumball”,
“无热球”
]
}
设arrayTwo={
小球:[
“随机球”,
“另一个球”,
“大不一样”,
“Smallball与众不同”
],
mediumBall:[
“中等大小”,
“中等大小球”,
“随机化”和“完全不同”,
“无热性完全不同”
]
}
//循环通过第一个数组
设firstnewArray=[];
for(数组中的第一个变量){
对于(i=0;isecondnewArray.indexOf(x)=-1);
让baDifference=secondnewArray.filter(x=>firstnewArray.indexOf(x)=-1);
//原始数组
log(firstnewArray);
log(secondnewArray);
//从推送的新阵列筛选结果
console.log(abDifference);

console.log(差分)如果希望结果与原始对象(不是数组)的外观相同,但当嵌套项同时出现在两个对象中时,会将其删除,则可以使用此功能:

功能差异(a、b){
常数c={};
for(对象项(a)的常数[key,arr]{
const filtered=arr.filter(s=>!(b[key]&&b[key]。包括(s));
if(filtered.length)c[键]=已过滤;
}
返回c;
}
//样本输入
设arrayOne={smallBall:['randomball','anotherrandomball','bigball','smallBall','mediumBall'],mediumBall:['mediumballsizeball','mediumBall','anothermandomball','anothermandomball'];
设arrayTwo={smallBall:['randomball','anotherrandomball','bigballdifferent','smallballdifference','smallballdifference',mediumBall:['mediumballsizeball','mediumsmallsizeball','randommediumballdifference','anothermediumballdifference'];
//结果
console.log(diff(arrayOne,arrayTwo));
console.log(diff(arrayTwo,arrayOne))

.as console wrapper{max height:100%!important;top:0;}
如果希望结果与原始对象(而不是数组)外观相同,但当它们同时出现在两个对象中时,嵌套项被删除,则可以使用此函数:

功能差异(a、b){
常数c={};
for(对象项(a)的常数[key,arr]{
const filtered=arr.filter(s=>!(b[key]&&b[key]。包括(s));
if(filtered.length)c[键]=已过滤;
}
返回c;
}
//样本输入
设arrayOne={smallBall:['randomball','anotherrandomball','bigball','smallBall','mediumBall'],mediumBall:['mediumballsizeball','mediumBall','anothermandomball','anothermandomball'];
设arrayTwo={smallBall:['randomball','anotherrandomball','bigballdifferent','smallballdifference','smallballdifference',mediumBall:['mediumballsizeball','mediumsmallsizeball','randommediumballdifference','anothermediumballdifference'];
//结果
console.log(diff(arrayOne,arrayTwo));
console.log(diff(arrayTwo,arrayOne))

.as控制台包装{max height:100%!important;top:0;}
@Thomas Junk的答案正是您所需要的。只需使用对象键修改两个数组。只需在过滤器逻辑之前添加此代码

Object.keys(arrayOne).forEach(item => firstnewArray.push(item));
Object.keys(arrayTwo).forEach(item => secondnewArray.push(item));

@托马斯·克鲁克的答案正是你所需要的。只需使用对象键修改两个数组。只需在过滤器逻辑之前添加此代码

Object.keys(arrayOne).forEach(item => firstnewArray.push(item));
Object.keys(arrayTwo).forEach(item => secondnewArray.push(item));

“过滤器”是什么意思?请提供您给定的输入数组的预期输出。两个数组的两个值之间的差异。我想知道我是否也可以在初始数组中获取父数组,而不仅仅是这些值。在console.log中,它只是给了我值上的差异。同样,请为您提供的输入数组提供预期的输出。您的问题中没有父数组,也不清楚会有什么不同。为了区分对象的键,您可能正在寻找
Object.keys()
。“过滤器”是什么意思?请提供您给定的输入数组的预期输出。两个数组的两个值之间的差异。我想知道我是否也可以在初始数组中获取父数组,而不仅仅是这些值。在console.log中,它只是给了我值上的差异。同样,请为您提供的输入数组提供预期的输出。您的问题中没有父数组,也不清楚会有什么不同。为了区分对象的键,您可能正在寻找
Object.keys()
。。。