数组比较总是失败

时间:2015-03-04 09:10:24

标签: javascript jquery html html5

我正在开发一个需要进行数组比较的应用程序。

HTML:

<input type="hidden" id="cData" value="0,3,2,0,0,0">

JQ:

var lblArr = [];
var attrArray = $("#cData").val();
lblArr = attrArray.split(',');
$.each(attrArray, function(i) {
  lblArr.push(attrArray[i]);
});

console.log("LBL Array       * " + lblArr);

var llblArr = [0,3,2,0,0,0];

console.log("LLLBL Array     * " + llblArr);

var array1 = lblArr;
var array2 = llblArr;

var is_same = array1.length == array2.length && array1.every(function(element, index) {
return element === array2[index];
});

console.log(is_same);

我总是假的。任何建议?

1 个答案:

答案 0 :(得分:1)

您需要将数组attrArray中的数据从String转换为Number,就像这样

lblArr = attrArray.split(',');
lblArr = $.map(attrArray.split(','), function(el) {
   return +el; 
   // to convert string to number you can also use 
   // return parseInt(el, 10); 
   // or 
   // return Number(el); 
});

Example

因为你有两个数组,其中一个看起来像["0","3","2","0","0","0"],第二个[0,3,2,0,0,0],你将"0"0进行比较,因为你使用{{1 (严格等于运算符)。您可以将其更改为===(等于运营商)并且不要使用==,如此

parseInt

Example

Difference between == and ===