建议一个对象数组中不存在的元素
Suggest elements of an object array which is not there in another object array
我有两个对象数组。
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"}]
此处
array1的类名为A、B、C和D。
array2的类名为X、Y、A、C和Z
函数应该以classNames
不属于array1
的方式返回array2
的classNames
函数的返回将是一个数组,其中包含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;
}
}
}
}
}
这里sug[]
将提供所有建议。
以下是算法的基本思想:
- 在
Array1
上迭代。- 将当前项的
className
添加到真值映射
- 将当前项的
- 在
Array2
上迭代- 如果当前项的
className
不在真值映射中,请将其添加到结果中
- 如果当前项的
很简单,O(n+m)
(最坏的情况是O(2n)
)。通过真值映射,我的意图是一个普通的js对象,其中每个键(在本例中)是className
,每个值是true
。
相关文章:
- 如何将一个函数附加到一个不存在的元素上
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 使用webdriver和selenium验证元素是否不存在
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- 打字稿错误:P roperty'包含'在类型'元素'上不存在
- 原型JavaScript Event.observe-如何观察可能存在或不存在的元素
- AngularJS NgIf 或 NgHide 如果另一个元素不存在或隐藏
- 输出表示img元素不存在(为null),但脚本在img的实现下面,并使用了onload()
- jQuery 获取搜索选择器,如果元素不存在
- 如何在量角器中为元素存在或不存在创建条件
- 脚本返回页面上不存在的元素
- 为什么当我刚刚创建 DOM 元素时它不存在
- JavaScript 检查特定元素 (iframe) 是否存在,如果不存在,则检查 appendchild
- 诉诸数组中不存在的元素,会大大降低性能
- 使用 on() 将事件处理程序添加到尚不存在的元素
- Javascript 如果元素不存在返回,则导致对象不起作用
- 如果事件附加到不存在的元素,是否可以触发该事件
- 一次在同一节点上添加 2 个元素?(或在不存在的节点中)
- 查找绑定在不存在元素上的事件
- jQuery id选择器不返回不存在元素的空数组