我有产品组,每组中的product_type_ids是识别产品组的关键。
我需要通过比较组中的每个product_type_id来匹配不同的组,而product_type_ids可能的顺序不同,但是id的集合必须匹配才能做出决定。
所以,不是循环遍历数组中的每个项目以找到匹配,是否有任何其他方法或方法来确定它们是否匹配。
以下是一些示例数据,可帮助我澄清问题。
Group Name | Product Type IDs
GR1 | 1,2,14
GR2 | 2,7,8
GR3 | 4,5,6
GR4 | 2,14,1
GR5 | 2,14
注意:ID不是很随机,除了GR5,它们总共给出17(= 1 + 2 + 14)。
那么,我可以知道GR1和GR4是匹配的吗?
我需要这个用于Javascript,更准确地说,对于AngularJS,如果有任何改变的话。
感谢。
答案 0 :(得分:1)
最简单的方法是对字符串表示进行排序然后进行比较:
function checkSame(arr1, arr2) {
arr1 = arr1.sort();
arr2 = arr2.sort();
return arr1.join() === arr2.join();
}
checkSame([1,2,14], [2,14,1]); // true
checkSame([1,2,14], [2,14,3]); // false
或者您可以循环和比较值:
function checkSame(arr1, arr2) {
if (arr1.length !== arr2.length) return false;
arr1 = arr1.sort();
arr2 = arr2.sort();
for (var i = 0; i < arr1.length; i++) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}