添加属性,打印对象时不显示
Add property, that doesn't show up when object is printed
我正在循环浏览一个列表,为列表中的每个项目添加一个新字段,如下所示:
for (var i = 0; i < returnList.length; i++) {
returnList[i].eligible = true;
};
然后,如果我这样做:
for (var i = 0; i < returnList.length; i++) {
console.log(returnList.eligible);
};
它多次返回"true"。
但是,如果我这样做:
console.log(returnList);
然后它返回(我只举一个对象的例子):
{ _id: 557ff7dab10a9e8029cf9baa,
WGS84:{ longitude: 0.028586996883792574,
latitude: 51.363584078860356 },
free: false,
approved: true,
organisationName: 'Test Organisation',
__v: 0,
polygonLineCoordinates: [],
organisationLocation: { postCode: 'BR2 6BP' },
opportunities: [],
events: [],
supportAreas: [] }
这显然没有符合条件的元素。我只想知道发生了什么!
亚当
可以定义不可枚举的属性。最简单的解决方案是使用 Object.defineProperty
:
var obj = {};
obj.someProp = true;
Object.defineProperty(obj, 'eligible', {writable:true});
obj.eligible = true;
console.log(obj.eligible); // logs true
for (var k in obj) {
console.log(k); // only logs "someProp"
}
var obj = {};
obj.someProp = true;
Object.defineProperty(obj, 'eligible', {writable:true});
obj.eligible = true
document.body.appendChild(document.createElement('pre')).innerHTML = "obj.eligible = "+obj.eligible;
console.log(obj.eligible); // logs true
for (var k in obj) {
console.log(k); // only logs "someProp"
}
document.body.appendChild(document.createElement('pre')).innerHTML = JSON.stringify(obj)
相关文章:
- 在javascript中添加和显示对象的随机数组中的视频
- 如何使用for in循环在javascript中显示对象中的对象
- 如何移动PIXI显示对象
- 在鼠标悬停时显示对象的边框(Fabricjs)
- 使用jquery在不同的表中显示对象的元素
- 剑道角's自动完成在结果中显示对象
- ExtJS显示对象属性
- 在 angularjs 的数组中显示 x 对象
- JQuery UI 自动完成在滚动菜单时在文本框中显示 [对象对象]
- JSON对象在控制台中显示对象,但也包含来自php脚本返回的字符串的“未定义”
- 如果属性不存在,则不显示对象的数据
- 挖空 JS为每个绑定显示 [对象对象]
- 翡翠 - 显示对象属性 - 未定义
- 单击超链接后在同一页面中显示对象
- 渲染场景时不显示对象
- 它在文本区域中显示“[对象][对象]”
- Angularjs.在 http.get 之后显示对象属性
- 如何在嵌套级别不受限制的情况下显示对象的动态嵌套子数组对象
- 如何在IE9上显示对象的内容
- JavaScript 警报函数不会显示对象