下划线大小方法不计算重复键值对

时间:2014-05-22 07:22:27

标签: underscore.js

我有一个对象,其中包含重复的实例。当我使用下划线使用size方法检查对象的长度时,它显示错误的值。它没有计算重复的实例。

如何计算包括重复或如何删除重复键值对?

这是样本:

oldData = {id: null, currency: "japan",  currency: "indian"};

console.log(_.size(oldData)) //it gives me 2 but I have 3 

2 个答案:

答案 0 :(得分:1)

您的oldData只有两把钥匙。重复的密钥将替换为最后一个。 尝试在任何JavaScript控制台中运行代码并直接检查oldData的值。

> var oldData = {id: null, currency: "japan",  currency: "indian"};
  undefined

> oldData
  Object {id: null, currency: "indian"}

如您所见,oldData只有一个currency键。这就是_.size(oldData)返回2而不是3的原因。

答案 1 :(得分:0)

尺寸没有错误。

对象就像一组键。您可以在一个集合中拥有两个相同的成员。

就像声明2个具有相同名称的变量一样。

  • 首次使用时,您需要为变量设置一个值
  • 然后你会覆盖它的值
  • !!! 在任何情况下,您都不会创建具有相同名称的第二个变量,仅根据其值进行区分。

对象的行为非常类似于变量集或某种方式的名称空间。