假设我们有一个目标:
message {
diff: {
cat: "Tabby"
name: "Meow Meow"
}
}您能用hasOwnProperty()检查副本并删除副本吗?示例
for (key in message.diff) {
//outputs every change when all keys are updated
if (message.diff.hasOwnProperty(key)){
this.uniqueArray.push(key);
}
}编辑:我意识到我想要谈论的内容可能有些混乱。我有一个函数,它侦听任何可以更新的表单元素,它将输入记录到控制台中。它主要是侦听属性名称,这个属性名称输出到数组,数组可能包含或不包含名称的重复项。
如果我们多次更新表单字段,它将变成:
Current Output: ['name', 'name', 'name', 'cat']
Desired Ouput: ['name', 'cat']发布于 2017-04-25 22:10:32
您可以使用Object.keys()、Array.prototype.filter()、Array.prototype.includes()来检查对象的属性是否是数组、Array.prototype.push()、扩展元素的一个元素。
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);
发布于 2017-04-25 21:55:45
检查数组中不存在对象键
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);
}
}https://stackoverflow.com/questions/43621529
复制相似问题