Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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_Dom - Fatal编程技术网

Javascript 我想比较数组,每个索引与另一个数组,每个索引与另一个数组

Javascript 我想比较数组,每个索引与另一个数组,每个索引与另一个数组,javascript,dom,Javascript,Dom,在这段代码中,我定义了两个数组temp_数组和storage_数组。当我输入数据时,它会被写入temp。我想将temp的每个索引与存储的每个索引进行比较,以便将存储作为唯一的阵列。因此,当且仅当temp不存在时,它才会将该值从temp推送到存储器 <!doctype html> <html> <head> <title>jQuery UI Dialog - Default functionality</title> <style&

在这段代码中,我定义了两个数组temp_数组和storage_数组。当我输入数据时,它会被写入temp。我想将temp的每个索引与存储的每个索引进行比较,以便将存储作为唯一的阵列。因此,当且仅当temp不存在时,它才会将该值从temp推送到存储器

<!doctype html>
<html>
<head>
<title>jQuery UI Dialog - Default functionality</title>
<style>
body {
font-family: "Trebuchet MS", "Helvetica", "Arial",  "Verdana", "sans-serif";
               font-size: 62.5%;
}
</style>
<link rel="stylesheet" href="jquery-ui.css">
<script src="jquery-1.11.1.js"></script>
<script src="jquery-ui.js"></script>
<script>

$(document).ready(function() { 
$('path') .dblclick(function(){
$(function() {
$( "#dialog" ).dialog();
});
});
$('.cat') .click(function(){
$(function(){
$('#dialog').dialog('close');
});
});
});
</script>
</head>
<body>
<svg width="80" height="32">
<path d="M10 15 l15 0 l2.5 -5 l5 10 l5 -10 l5 10 l5 -10 l5 10 l2.5 -5 l15 0" stroke="black" stroke-width="2px" stroke-linejoin="bevel" fill="none"></path>
</svg>
<div id="dialog" title="Basic dialog" style="display:none">
<form>
Component-ID: <input type="text" name="id1" id ='id1'><br>
Componentval: <input type="text" name="val1" id ='val1'><br>
<input class="cat" type="button" value="Submit" onclick="loop();">
<script>
var storage_Array =[];
var temp_Array =[];
function writedata(){

//console.log(document.getElementById("id1"));
temp_Array.push({'id':  document.getElementById("id1").value, 'val': document.getElementById("val1").value});
//console.log(storage_Array);
}
for(var i=0;i < 5; i++){
writedata();
}
console.log(temp_Array);
console.log(storage_Array);
}
</script>
</form>
</div>
</body>

jQuery UI对话框-默认功能
身体{
字体系列:“投石机MS”、“Helvetica”、“Arial”、“Verdana”、“无衬线”;
字体大小:62.5%;
}
$(文档).ready(函数(){
$('path').dblclick(函数(){
$(函数(){
$(“#dialog”).dialog();
});
});
$('.cat')。单击(函数(){
$(函数(){
$('dialog')。dialog('close');
});
});
});
组件ID:
组件值:
变量存储_数组=[]; var temp_数组=[]; 函数writedata(){ //log(document.getElementById(“id1”); temp_Array.push({'id':document.getElementById(“id1”).value,'val':document.getElementById(“val1”).value}); //console.log(存储阵列); } 对于(变量i=0;i<5;i++){ writedata(); } 控制台日志(临时数组); console.log(存储阵列); }
要检查数组中是否已经存在某些内容,通常可以使用本机javascript方法indexOf()或类似jQuery的实用程序方法

但是,由于数组包含对象,因此需要做更多的工作。正如中所讨论的,javascript没有提供一种通用方法来根据两个对象的内容确定它们是否相等

有两种解决方案。您可以编写一个函数
isEqual(objectA,objectB)
,用于检查
id
val
的值。每次插入新对象时,都需要在数组上循环,并使用此函数确保该对象不存在

另一种方法是更改存储结构。这取决于数据是什么,但有时可能适合在对象内按id分组。存储格式类似于:

{
  id_1: [value_1, value_2],
  id_2: [value_3]
}
然后,您可以通过以下方式有条件地添加到存储:

newId = document.getElementById("id1").value;
newVal = document.getElementById("val1").value;
if(!(newId in storage)) {
    storage[newId] = [newVal];
} else if(-1 === $.inArray(newVal, storage[newId])) {
    storage[newId].push(newVal);
}
如果你不想编码的话,你可以看看。