当前位置: 首页 > 面试题库 >

数组唯一值

欧阳勇
2023-03-14
问题内容

在处理从YQL返回的JSON时,我发现自己正在寻找一种从数组中提取所有唯一值的方法。

function uniqueArrayValues(o){
      var items = o.query.results.row,
          output = [];

  function check(val){
    for(var c=0; c<output.length; c++){
      if(output[c] === val){
        return false;
        }
    }
     return true;
  }

 for(var i=1; i<items.length; i++){
   if(check(items[i].team)){
     output.push(items[i].team);
    }    
  }

  return output;
}

代码看起来有点“忙”,我想知道是否有更优雅的方法从数组中提取唯一值。


问题答案:

您可以使用indexOf来检查元素是否在数组中。

 function check(val){
        return output.indexOf(val) != -1;
    }

或者如果您具有唯一的ID或名称,则使用对象而不是数组:var output = {}

for(var i=1; i<items.length; i++){
   if(!output[items[i].team.id])){
     output [items[i].team.id] = items[i].team;
    }    
  }


 类似资料:
  • 我有以下数组 我想从这个数组中得到唯一的值。所以我希望我的结果是这样的 我使用了数组唯一函数,但无法得到结果 如果我有两个索引,这是有效的,但是对于多个索引呢?

  • 块引号 null 爪哇

  • 问题内容: 我有这样的JSON字符串 此JSON数组中有重复的值..我怎样才能使该JSON数组像这样唯一 我在寻找使用较少迭代的建议, 在这种情况下不起作用。 欢迎使用任何第三方库的建议。 问题答案: 在以下SO问题中检查解决方案: 使用jQuery从JSON数组获取唯一结果 您必须遍历数组并创建一个包含唯一值的新数组。

  • 问题内容: 给定PostgreSQL 9.6中的此表: 与像这样的行: 如何删除一个单一的“ B”值? 我不能使用: 因为它会删除 所有 值“ B”的元素。我只是想删除一个元素(例如,第一个)。 有任何想法吗? 问题答案: 根据我在dba.SE上找到的旧答案,并充分利用了它: 按索引删除数组元素 您可能会更进一步: 此函数将要删除的元素的值作为第二个参数。相应地使用多态伪类型使它适用于任何数组类型

  • 如何有效地获取NumPy数组中每个唯一值的频率计数?

  • 问题内容: 我有一个多维数组设置,如下所示: 在该区域中搜索“名称”中的重复值并将其删除以使多维数组中的每个值都是唯一的最佳方法是什么? 提前致谢! 问题答案: 由于每个人都提供了替代方案,因此这里是解决当前问题的方法。有时,我们必须使用已有的数据,而不必按照自己喜欢的方式进行重新排列。话虽如此,这将从阵列中删除所有重复的后续条目。 看起来像这样: