我想遍历一组字符串,看看它们是否彼此完全相同。如果循环的所有字符串都相同,我想运行一个函数。如果不是,请运行另一个功能。
$(".variationPrice").each(function(){
var price = $(this).text();
if(price == price){
allMatch();
} else{
notMatch();
}
});
换句话说,如果我们有以下数据,它将运行allMatch()
:
55美元,55美元,55美元
如果我们有以下数据,它将运行noMatch()
:
55美元,45美元,55美元
上述代码不起作用,但作为起点。在上面的代码中,价格总是与价格相匹配。我需要找出一种方法来存储变量中的第一个价格,并将所有结果与初始值进行比较。通过jquery / javascript比较字符串的好方法是什么?
更新 一个想法是将all全部推入一个数组,然后查看数组中是否有重复项:
var array1=[2,2,1,2,2,2];
function checkForDuplicates(arr){
var x = arr[0];
for(var i=1;i<arr.length;i++){
if(x!=arr[i]){return 'at least one duplicate found'}
}
return 'no duplicates found';
}
答案 0 :(得分:1)
使用您的初始代码,您只需要在每个()范围之外提供一些变量。这段代码可以解决问题。
var allMatch = true;
var price;
$(".variationPrice").each(function(){
if (price === undefined) {
price = $(this).text();
}
if (price != $(this).text()){
allMatch = false;
return false; // No need to check the rest of the array..
}
});
if (allMatch) {
allMatch();
} else {
notMatch();
}
根据评论的建议进行优化。