Jav*_*eef -2 javascript arrays performance jquery json
我有两个对象数组.
Array1 : [{"id":20,"stName":"ABC","className":"A"},{"id":30,"stName":"ABD","className":"B"},{"id":40,"stName":"ABE","className":"C"},{"id":50,"stName":"ABF","className":"D"}]
Array2 : [{"id":110,"stName":"ASA","className":"X"},{"id":120,"stName":"ASB","className":"Y"},{"id":130,"stName":"ASC","className":"A"},{"id":140,"stName":"ASD","className":"C"},{"id":150,"stName":"ASE","className":"Z"}]
Run Code Online (Sandbox Code Playgroud)
这里
array1的classNames为A,B,C和D.
array2的classNames为X,Y,A,C和Z.
函数应该返回classNames的array2是,这种方式classNames不属于array1
函数的返回将是一个包含X,Y和Z作为元素的数组.
如何以javascript较少的时间复杂度编写此函数,因为array1和array2可能有20个以上的对象.
编辑
这是我用过的脚本 for loop
array1 = [{"id":20,"stName":"ABC","className":"A"},{"id":30,"stName":"ABD","className":"B"},{"id":40,"stName":"ABE","className":"C"},{"id":50,"stName":"ABF","className":"D"}]
array2 = [{"id":110,"stName":"ASA","className":"X"},{"id":120,"stName":"ASB","className":"Y"},{"id":130,"stName":"ASC","className":"A"},{"id":140,"stName":"ASD","className":"C"},{"id":150,"stName":"ASE","className":"Z"}]
function findSuggest(){
var sug = [];
for(array2_count=0;array2_count < array2.length;array2_count++){
for(array1_count=0;array1_count < array1.length;array1_count++){
if(array2[array2_count].className == array1[array1_count].className){
break;
}
else{
if(array1_count == (array1.length - 1)){
sug[sug.length] = array2[array2_count].className;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里sug[] 有所有建议.
Cap*_*Six 18
以下是该算法的一般概念:
Array1.
className到真值图中Array2
className不在真值映射中,请将其添加到结果中.那很简单,O(n+m)(最糟糕的情况O(2n)).通过真值图,我的意图是一个普通的js对象,其中每个键(在这种情况下)是a className,每个值都是true.
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |