Dojo + JS:最简单的数组交互算法

Posted

技术标签:

【中文标题】Dojo + JS:最简单的数组交互算法【英文标题】:Dojo + JS: simplest algorithm for arrays intersaction 【发布时间】:2015-06-05 09:26:50 【问题描述】:

想象有一个物体:

object = 
  'foo': 1,
  'bar': 'TARGET,
  'baz': 3

还有一个对象数组:

arrayOfObjects = [
  
    'john': 'smith',
    'paul': 'walker'
  ,
  
    'bryan': 'best',
    'targetProp': 'TARGET'
  
]

检查第一个对象是否与数组中具有具体名称为targetProp 的属性的某个对象具有相交属性值的最简单算法是什么?

for (prop in object) 
  arary.forEach(arrayOfObjects, function(foundObject) 
    if (prop.indexOf(foundObject.targetProp) !== -1) 
      // Do smth
    
  )

是否可以使用 javascript 或 Dojo 工具仅通过一个循环找到它?

【问题讨论】:

【参考方案1】:

你想要做得很好吗? 如果不是,那么一个丑陋的原因可能是使用JSON.stringify

类似:

var foo = JSON.stringify(arrayOfObjects);
for (prop in object) 
  if(foo.indexOf('"' + prop + '":') > -1)  //add double quote and colon to only match properties
      // Do smth
  

但这真的很丑……

【讨论】:

以上是关于Dojo + JS:最简单的数组交互算法的主要内容,如果未能解决你的问题,请参考以下文章

js数组去重的5种算法实现

js排序算法

最简单的方法实现 Python数组二分查找算法

最简单的排序算法之一冒泡排序----js实现

[算法][原创]最简单的二分查找左右边界思路

小5聊从最简单的算法开始(冒泡算法)