相关疑难解决方法(0)

获取JavaScript数组中的所有唯一值(删除重复项)

我有一系列数字,我需要确保它们是唯一的.我在互联网上找到了下面的代码片段,它的工作情况很好,直到数组中的数字为零.我发现这个其他脚本在SO上看起来几乎就像它,但它不会失败.

所以为了帮助我学习,有人可以帮我确定原型脚本出错的地方吗?

Array.prototype.getUnique = function() {
 var o = {}, a = [], i, e;
 for (i = 0; e = this[i]; i++) {o[e] = 1};
 for (e in o) {a.push (e)};
 return a;
}
Run Code Online (Sandbox Code Playgroud)

重复问题的更多答案:

类似的问题:

javascript arrays unique

1273
推荐指数
40
解决办法
122万
查看次数

计算数组元素的出现次数/频率

在Javascript中,我试图获取一个初始数值值数组并计算其中的元素.理想情况下,结果将是两个新数组,第一个指定每个唯一元素,第二个包含每个元素出现的次数.但是,我愿意接受有关输出格式的建议.

例如,如果初始数组是:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

然后将创建两个新阵列.第一个将包含每个唯一元素的名称:

5, 2, 9, 4
Run Code Online (Sandbox Code Playgroud)

第二个将包含元素在初始数组中出现的次数:

3, 5, 1, 1
Run Code Online (Sandbox Code Playgroud)

因为数字5在初始数组中出现三次,所以数字2出现五次,9和4出现一次.

我经常搜索一个解决方案,但似乎没有任何工作,我自己尝试过的所有东西都变得荒谬复杂.任何帮助,将不胜感激!

谢谢 :)

javascript arrays element count

195
推荐指数
20
解决办法
31万
查看次数

Lodash从数组中删除重复项

这是我的数据:

[
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello-how-are-you',
        id: "23"    
    },
    {
        url: 'www.example.com/i-like-cats',
        id: "24"    
    },
    {
        url: 'www.example.com/i-like-pie',
        id: "25"    
    }
]
Run Code Online (Sandbox Code Playgroud)

使用Lodash,我怎么能删除具有重复id键的对象?有过滤器,地图和独特的东西,但不太确定.

我的真实数据集要大得多,并且有更多的密钥,但概念应该是相同的.

javascript lodash

194
推荐指数
7
解决办法
22万
查看次数

如何在数组中获取唯一值

如何获取数组中的唯一值列表?我是否总是必须使用第二个数组,或者在JavaScript中是否有与java的hashmap类似的东西?

我将只使用JavaScriptjQuery.不能使用其他库.

javascript jquery

145
推荐指数
14
解决办法
25万
查看次数

ES6 - 从对象数组中删除重复项

假设一个对象数组如下:

const listOfTags = [
    {id: 1, label: "Hello", color: "red", sorting: 0},
    {id: 2, label: "World", color: "green", sorting: 1},
    {id: 3, label: "Hello", color: "blue", sorting: 4},
    {id: 4, label: "Sunshine", color: "yellow", sorting: 5},
    {id: 5, label: "Hello", color: "red", sorting: 6},
]
Run Code Online (Sandbox Code Playgroud)

如果标签和颜色相同,则重复输入.在这种情况下,id = 1且id = 5的对象是重复的.

如何过滤此数组并删除重复项?

我知道解决方案,您可以使用以下内容过滤一个键:

const unique = [... new Set(listOfTags.map(tag => tag.label)]
Run Code Online (Sandbox Code Playgroud)

但是多个键呢?

根据评论中的要求,这里是期望的结果:

[
    {id: 1, label: "Hello", color: "red", sorting: 0},
    {id: 2, label: "World", color: "green", sorting: 1}, …
Run Code Online (Sandbox Code Playgroud)

javascript reduce dictionary unique filter

12
推荐指数
4
解决办法
6159
查看次数

如何从javascript Array.map()回调中排除一些元素

基本上,我想实现以下内容:

var categories = [];
var products = // some array of product objects
products.map(function(value) {
   if(categories.indexOf(value.Category === -1)) categories.push(value.Category);
});
Run Code Online (Sandbox Code Playgroud)

因此,categories数组包含唯一的产品类别列表.

觉得应该有一个更好的方法去做,但没有想到任何事情.

如果没有,那么可能首先没有必要使用map().我可以这么简单

var categories = [];
var products = // some array of product objects
for (var i = 0; i < products.length; i++) {
   if(categories.indexOf(products[i].Category === -1)) categories.push(products[i].Category);
}
Run Code Online (Sandbox Code Playgroud)

更新那些坚持认为它是"如何制作阵列唯一"问题的复制品.我看到了这个帖子,对于我的情况,我认为它不适用.我没有一系列值,我需要使其独特.我有一个对象数组,我需要构建一个唯一值数组.差异可能很微妙 - 但是要了解该主题的用例,我将构建一个非唯一的数组,然后使其唯一.似乎比我原来的解决方案更糟糕

javascript arrays

9
推荐指数
2
解决办法
9720
查看次数

在Javascript中从Array中删除重复的元素

我有一个带有obejcts电子邮件和Id的数组,所以我想要删除具有相似ID的重复元素.

例:

var newarray=[
    {
        Email:"test1@gmail.com",
        ID:"A"
    },
    {
        Email:"test2@gmail.com",
        ID:"B"
    },
    {
        Email:"test3@gmail.com",
        ID:"A"
    },
    {
        Email:"test4@gmail.com",
        ID:"C"
    },
    {
        Email:"test4@gmail.com",
        ID:"C"
    }
];
Run Code Online (Sandbox Code Playgroud)

现在我需要删除ID很常见的重复元素.我期待最终的数组是

var FinalArray=[
    {
        Email:"test1@gmail.com",
        ID:"A"
    },
    {
        Email:"test2@gmail.com",
        ID:"B"
    },  
    {
        Email:"test5@gmail.com",
        ID:"C"
    }
];
Run Code Online (Sandbox Code Playgroud)

javascript arrays duplicates

6
推荐指数
1
解决办法
1万
查看次数

如何计算Javascript中对象数组中不同值的出现次数?

我有一个像下面的对象数组:

var array =
    [
        {"name":"abc","age":20}
        {"name":"abc","age":20}
        {"name":"abc","age":20}
        {"name":"xyz","age":21}
        {"name":"xyz","age":21}
    ]
Run Code Online (Sandbox Code Playgroud)

我想计算不同值的出现次数,例如:

[3,2]
Run Code Online (Sandbox Code Playgroud)

假设abc有3次出现并且xyz有2次出现.

我正在这样做reactjs.我能够获得不同的值,比如[abc,xyz]使用这个答案.

ES6语法是首选.

javascript arrays ecmascript-6 reactjs

6
推荐指数
2
解决办法
3986
查看次数

将lodash _.uniqBy()转换为本机javascript

在这个片段中我被困在了_.uniqBy(array,iteratee),这个

  • iteratee 可以是函数或字符串同时
  • 在哪里放置条件来检查属性上的uniqness因为itratee函数可以是任何东西

var sourceArray = [ { id: 1, name: 'bob' },
  { id: 1, name: 'bill' },
  { id: 1, name: 'bill' } ,
  {id: 2,name: 'silly'},
  {id: 2,name: 'billy'}]

function uniqBy (inputArray, callback) {
  return inputArray.filter(callback)
}
var inputFunc = function (item) {
  return item.name
}

// var destArray = _.uniqBy(sourceArray,'name')

var destArray = uniqBy(sourceArray, inputFunc)
console.log('destArray', destArray)
Run Code Online (Sandbox Code Playgroud)

任何领导都将非常感激.

javascript arrays distinct-values lodash

4
推荐指数
1
解决办法
5842
查看次数

Javascript - 仅返回对象数组中的唯一值

我有一个对象数组,我只想根据它们的对象 ID 返回唯一的对象。

我试图在现有数组中循环,data然后查找元素是否已经添加到新创建的数组中arr,该数组应该只包含唯一值,但它对我不起作用,我相信我在这里或那里遗漏了一些东西.

这是当前数组:

          [
        {
          "objectId": "WMtwbyhFI6",
          "cuisineNameEn": "Cafe",
          "ordersNo": 20,
          "hidden": false
        },
        {
          "objectId": "QJSNTMpq5F",
          "ordersNo": 24,
          "cuisineNameEn": "Italian",
          "hidden": false
        },
        {
          "objectId": "iLXKswFRGa",
          "ordersNo": 5,
          "cuisineNameEn": "Japanese",
          "hidden": true
        },
        {
          "objectId": "Db0MeihpJE",
          "ordersNo": 6,
          "cuisineNameEn": "Fast Food",
          "hidden": false
        },
        {
          "objectId": "QJSNTMpq5F",
          "ordersNo": 24,
          "cuisineNameEn": "Italian",
          "hidden": false
        },
        {
          "objectId": "Db0MeihpJE",
          "ordersNo": 6,
          "cuisineNameEn": "Fast Food",
          "hidden": false
        },
        {
          "objectId": "Db0MeihpJE",
          "ordersNo": 6,
          "cuisineNameEn": "Fast Food", …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

4
推荐指数
1
解决办法
4098
查看次数