我正在开发一个需要进行数组比较的应用程序。
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);
我总是假的。任何建议?
答案 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);
});
因为你有两个数组,其中一个看起来像["0","3","2","0","0","0"]
,第二个[0,3,2,0,0,0]
,你将"0"
与0
进行比较,因为你使用{{1 (严格等于运算符)。您可以将其更改为===
(等于运营商)并且不要使用==
,如此
parseInt