Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 JS比较两个数组并从第二个数组中删除唯一值_Javascript_Jquery_Arrays_Knockout.js - Fatal编程技术网

Javascript JS比较两个数组并从第二个数组中删除唯一值

Javascript JS比较两个数组并从第二个数组中删除唯一值,javascript,jquery,arrays,knockout.js,Javascript,Jquery,Arrays,Knockout.js,我正在制作Knockout.js var chosenFruit = ko.observableArray([]); var allFruits = ko.observableArray([]); allFruits = [ "Apple" , "Bananna" , "Grapes" , "Oranges"] chosenFruit = ["Apple" , "Bananna" , "kiwi"] 现在,由于“猕猴桃”不在第一个数组中(也就是

我正在制作Knockout.js

var chosenFruit = ko.observableArray([]);
var allFruits   = ko.observableArray([]);

allFruits       =       [ "Apple" , "Bananna" , "Grapes" , "Oranges"]
chosenFruit     =       ["Apple" , "Bananna" , "kiwi"]
现在,由于“猕猴桃”不在第一个数组中(也就是说,在allFruits中),我想从第二个数组(chosenFruit)中删除“猕猴桃”

我想比较两个数组并从第二个数组中删除第一个数组中不存在的值

这意味着,比较后,第二个数组应为:

chosenFruit   =        ["Apple" , "Bananna"]
请建议如何实现这一目标

提前谢谢你

使用方法

var allFruits=[“苹果”、“班纳纳”、“葡萄”、“橙子”],
乔森水果=[“苹果”、“班纳纳”、“猕猴桃”];
console.log(
//迭代并过滤掉元素
chosenFruit.过滤器(功能(v){
//检查数组中是否存在值
返回所有水果。指数(v)>-1;
})

)
您可以通过查找和删除不应在
chosenFruits
数组中的项来执行以下操作

allFruits=[“苹果”、“班纳纳”、“葡萄”、“橙子”],
乔森水果=[“苹果”、“班纳纳”、“猕猴桃”、“甜瓜”、“蟑螂”];
丢弃=chosenFruit.reduceRight((p,c,i,a)=>!allFruits.includes(c)?p.concat(a.splice(i,1)):p,[]);
控制台日志(chosenFruit);
console.log(丢弃)
console.log($([“Apple”、“Bananna”、“kiwi”)).filter([“Apple”、“Bananna”、“Grapes”、“Oranges”).get()

请写出您尝试过的内容。您没有从
chosenFruit
数组中删除任何内容。@Redu:只需指定返回值就可以了
chosenFruit=chosenFruit.filter(函数(v){return allFruits.indexOf(v)>-1;})
。。。。。但是它会破坏引用,我认为引用在这里是不必要的,它不会起作用。如果您这样做,任何引用
chosenFruit
的数组仍将显示[“Apple”、“Bananna”、“kiwi]。由于赋值运算符(
=
)的原因,这些引用将丢失。@user2598808:有错误吗?您需要分配返回值
chosenFruit=chosenFruit.filter(函数(v){returnallfruits.indexOf(v)>-1;})
@PranavCBalan非常感谢!如果这是一个愚蠢的问题,我很抱歉,但是这个符号“=>”是什么?我试图用KnockOut.JS在JS文件中实现这一点。@user2598808 ES6 arrowfunction@user2598808这是一个叫做箭头函数的函数定义。我将在常规函数定义中给出上述代码段的修改版本。@Redu非常感谢您的回复。请建议我们可以使用JavaScript文件中的箭头。@user2598808如果您的目标环境符合JS的ES6标准,您可以安全地使用箭头。谢谢@Laurianti,我需要使用KnockOut.JS