首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用hasOwnProperty去除重复

用hasOwnProperty去除重复
EN

Stack Overflow用户
提问于 2017-04-25 21:47:27
回答 2查看 394关注 0票数 0

假设我们有一个目标:

代码语言:javascript
复制
message { 
  diff: { 
    cat: "Tabby"
    name: "Meow Meow"
  }
}

您能用hasOwnProperty()检查副本并删除副本吗?示例

代码语言:javascript
复制
for (key in message.diff) {
   //outputs every change when all keys are updated
   if (message.diff.hasOwnProperty(key)){
     this.uniqueArray.push(key); 
   }
}

编辑:我意识到我想要谈论的内容可能有些混乱。我有一个函数,它侦听任何可以更新的表单元素,它将输入记录到控制台中。它主要是侦听属性名称,这个属性名称输出到数组,数组可能包含或不包含名称的重复项。

如果我们多次更新表单字段,它将变成:

代码语言:javascript
复制
Current Output: ['name', 'name', 'name', 'cat']
Desired Ouput: ['name', 'cat']
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-25 22:10:32

您可以使用Object.keys()Array.prototype.filter()Array.prototype.includes()来检查对象的属性是否是数组、Array.prototype.push()、扩展元素的一个元素。

代码语言:javascript
复制
var message = { 
  diff: { 
    cat: "Tabby",
    name: "Meow Meow"
  }
}

var arr = ["name", "cat"];

arr.push(...Object.keys(message.diff).filter(function(diff) {return !arr.includes(diff)}));

console.log(arr);

var message = { 
  diff: { 
    lion: "Tabby",
    tiger: "Meow Meow"
  }
}

arr.push(
  ...Object.keys(message.diff)
  .filter(function(diff) {return !arr.includes(diff)}))

console.log(arr);

票数 0
EN

Stack Overflow用户

发布于 2017-04-25 21:55:45

检查数组中不存在对象键

代码语言:javascript
复制
for (key in message.diff) {
   //outputs every change when all keys are updated
   if (message.diff.hasOwnProperty(key) &&  this.uniqueArray.indexOf(key) == -1){
     this.uniqueArray.push(key); 
   }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43621529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档