Javascript数组比较问题
Javascript Array comparing Issue
如何仅在循环结束后运行else部分?所以现在:10与10、20、30进行比较。然后将40与10、20、30进行比较。我只想在与所有值(10、20、30)进行比较后得到40。当数组2中缺少40时,我想做一些计算。现在应该是40==10,它;s缺失,请进行计算,但我需要它来比较所有值,然后进行计算。
alert("start")
var array1 = [10, 40];
var array2 = [10, 20, 30];
for (var x = 0; x < array2.length; x++) {
for (var y = 0; y < array1.length; y++) {
if (array1[y] != array2[x]) {
alert("Not Found")
} else {
alert("Found")
}
}
}
您可以使用Array.prototype.filter()
Array.prototype.diff = function(a) {
return this.filter(function(i) {return a.indexOf(i) < 0;});
};
var array1 = [10, 40];
var array2 = [10, 20, 30];
array1.diff(array2); //[40]
试试这个:
alert("start")
var array1 = [10, 40];
var array2 = [10, 20, 30];
for (var x = 0; x < array1.length; x++) {
var count = 0;
for (var y = 0; y < array2.length; y++) {
if(array1[x] == array2[y]) {
count++;
}
}
if (count > 0) {
alert("Found")
} else {
alert("Not Found")
// do your calculation here
}
}
alert("start")
var array1 = [10, 40];
var array2 = [10, 20, 30];
for (var x = 0; x < array1.length; x++) {
if(array2.indexOf(array1[x]) == -1) console.log(array1[x] + ' from array 1 not found in array 2');
}
for (var x = 0; x < array2.length; x++) {
if(array1.indexOf(array2[x]) == -1) console.log(array2[x] + ' from array 2 not found in array 1');
}
FIDDLE
一些建议:
-
改变迭代;从
array1
作为外循环开始,使用array2
作为内循环,因为您需要一个位于array2
内部的项目的摘要。 -
如果找到项目,请使用指示符。
-
评估指标并采取您需要的行动。
document.write("start<br>");
var array1 = [10, 40],
array2 = [10, 20, 30],
x, y, found;
for (x = 0; x < array1.length; x++) {
found = false;
for (y = 0; y < array2.length; y++) {
if (array1[x] === array2[y]) {
found = true;
}
}
if (!found) {
document.write(array1[x] + ' not found!<br>');
}
}
document.write("end");
基本上与上述相同,但更短
var array1 = [10, 40],
array2 = [10, 20, 30];
array1.forEach(function (a) {
if (!~array2.indexOf(a)) {
document.write(a + ' not found!');
}
});
相关文章:
- 使用jquery进行整数比较时遇到问题
- Javascript数组比较问题
- 在javascript中面临比较问题
- 菜单不是绝对的href与位置href问题进行比较
- Linqjs 与比较器问题相交
- 在 javascript 中比较字符串与日期时间的问题
- 带有反斜杠的 Javascript 字符串比较问题
- 交换机/比较语句问题
- javascript中比较两个数字的问题
- JavaScript中的字符串比较问题
- JQuery选择器性能和比较问题
- Jquery if else比较查询问题
- 比较日期问题- javascript
- 矩阵行列式.数字比较的问题
- typeof == "undefined"比较日期,新的日期,数学.这个简单的js代码有什么问题?
- Javascript两个日期时间比较问题
- Javascript-比较日期时出现问题
- AngularJS过滤器问题:仅比较字符串的一部分(子字符串)
- 问题:将对象与对象数组进行比较
- datejs 的 JavaScript 日期比较问题