Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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,我有两个JavaScript数组(比如newvalue和oldvalue) 这两个数组包含一些公共值。我想从数组newvalue中删除oldvalue中存在的所有值 示例:假设newvalue的值为1,2,3,4,oldvalue的值为2,3,我想从newvalue中删除2,3,newvalue的值应为1,4 这必须在JavaScript中完成 将此视为新值 [ {"patentid":1, "Geography":"china", "type":"utility", "Assignee":"a

我有两个JavaScript数组(比如
newvalue
oldvalue

这两个数组包含一些公共值。我想从数组
newvalue
中删除
oldvalue
中存在的所有值

示例:假设
newvalue
的值为1,2,3,4,
oldvalue
的值为2,3,我想从
newvalue
中删除2,3,
newvalue
的值应为1,4

这必须在JavaScript中完成

将此视为新值

[
{"patentid":1,
"Geography":"china",
"type":"utility",
"Assignee":"abc"
},
{"patentid":2,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":3,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":4,
"Geography":"china",
"type":"utility",
"Assignee":"xyz"
}
]


consider this as old value


[{"patentid":3,
"Geography":"aus",
"type":"utility",
"Assignee":"abc"
},
{"patentid":4,
"Geography":"china",
"type":"utility",
"Assignee":"xyz"
}]
现在我必须删除newvalue中专利id为3和4的对象,如果它实际上是公共对象(即o1==o2为真),那么您可以执行如下操作:

var o1 = { id: 1 };
var o2 = { id: 2 };
var o3 = { id: 3 };
var o4 = { id: 4 };

var newvalue = [o1, o2, o3, o4];
var oldvalue = [o2, o3];

newvalue = newvalue.filter(function(e) { return oldvalue.indexOf(e) === -1 });

您可以使用
Array.filter
Array.indexOf
函数解析它。 您的示例可以这样解决:

[1,2,3,4].filter(function(e){ 
  return [2,3].indexOf(e) === -1;
});

您也可以使用类似的库,它有很多函数来解决这些类型的数组操作。

对象是否总是数字?否。具有多个字段的json对象是相同的对象,还是“相似”的对象?这必须在JavaScript中完成。你还想用什么语言?多少钱?只是开玩笑。。。但这是一种说“你自己试过了吗?如果是,请展示你的努力……”[1,2,3,4]。过滤器(函数(e){return[2,3]。indexOf(e)==-1});是的,我对stackoverflow是新手,现在我想我做得更好了thanks@NithinQ既然他正确地回答了原来的问题,他现在应该为你的问题的新版本提供另一个解决方案?你打算再改变你的问题多少次?在任何情况下,此答案中提供的原则将适用于您的修订问题。为什么不接受它并继续。如果它们只是“相似”对象,则必须定义它们何时“相同”,并使用自己的“indexOf”(或“contains”)在过滤器中使用。