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

Javascript 比较两个不起作用的对象?

Javascript 比较两个不起作用的对象?,javascript,jquery,object,comparison,Javascript,Jquery,Object,Comparison,我面临一个比较两个物体的问题 我在比较一个传入对象和一个对象数组, 查看对象是否已在数组中 我尝试了两种方法: (betTemps是对象数组,tempBet是应进行比较的当前对象。) 如果之后: .. else if(duplicate){ alert("The Bet is already in the List"); } ... 添加已在阵列中的对象后的控制台输出: 控制台输出屏幕截图 如您所见,它们是相等的,但另一个对象仍添加到数组中 我也尝试在indexOf中使用此方法: if(

我面临一个比较两个物体的问题

我在比较一个传入对象和一个对象数组, 查看对象是否已在数组中

我尝试了两种方法:

(betTemps是对象数组,tempBet是应进行比较的当前对象。)

如果之后:

.. else if(duplicate){
  alert("The Bet is already in the List");
} ...
添加已在阵列中的对象后的控制台输出:

控制台输出屏幕截图

如您所见,它们是相等的,但另一个对象仍添加到数组中

我也尝试在indexOf中使用此方法:

if(this.betTemps.indexOf(tempBet) > -1){
  alert("The Bet is already in the List");
}
添加已在阵列中的对象后的控制台输出:

控制台输出屏幕截图

附言:

比较前的代码:

  addBet(bet, index){
var tempBet = Object.assign({}, bet);
var select = (document.getElementById('select'+index)) as HTMLSelectElement;
select = select.options as HTMLSelectElement;
let count = 0;

tempBet.category = [];
for(let i = 0; i < 3; i++) {
    if (select[i].selected) {
      tempBet.category.push(select[i].value):
      count++;
    }
}
if (count == 0) {
  alert("There has to be at least one Category choosen!");
} else if(duplicate     <- This part changes individually which method you use ->){
  alert("The Bet is already in the List");
} else {
  this.betTemps.push(tempBet);
}
addBet(下注,索引){
var tempBet=Object.assign({},bet);
var select=(document.getElementById('select'+index))作为HTMLSelectElement;
select=select.options作为HTMLSELECT元素;
让计数=0;
tempBet.category=[];
for(设i=0;i<3;i++){
如果(选择[i]。已选择){
tempBet.category.push(选择[i].value):
计数++;
}
}
比较后的代码:

  addBet(bet, index){
var tempBet = Object.assign({}, bet);
var select = (document.getElementById('select'+index)) as HTMLSelectElement;
select = select.options as HTMLSelectElement;
let count = 0;

tempBet.category = [];
for(let i = 0; i < 3; i++) {
    if (select[i].selected) {
      tempBet.category.push(select[i].value):
      count++;
    }
}
if (count == 0) {
  alert("There has to be at least one Category choosen!");
} else if(duplicate     <- This part changes individually which method you use ->){
  alert("The Bet is already in the List");
} else {
  this.betTemps.push(tempBet);
}
if(计数==0){
警报(“必须至少选择一个类别!”);
}否则,如果(重复){
警告(“下注已在列表中”);
}否则{
这个.betTemps.push(tempBet);
}

检查对象是否在数组中的最佳方法是使用array includes函数: 比如,如果我想检查一个对象是否在B数组中,我会检查 (A==B.包括(A))