Javascript JS创建具有键但没有值的对象

Javascript JS创建具有键但没有值的对象,javascript,Javascript,使用for循环进行迭代时,使用以下方法更方便: for (var key in obj){ key } 除此之外: for (var i in array){ var key = array[i]; key } for (var i = 0; i< array.length;i++){ var key = array[i]; key } 假设我只关心键而不关心顺序,有没有一种方法可以声明只包含键而不包含值的对象(比上面更容易)?我只是不喜欢用 :'', 它看起来像一张奇怪的笑

使用for循环进行迭代时,使用以下方法更方便:

for (var key in obj){ key }
除此之外:

for (var i in array){ var key = array[i]; key }
for (var i = 0; i< array.length;i++){ var key = array[i]; key }
假设我只关心键而不关心顺序,有没有一种方法可以声明只包含键而不包含值的对象(比上面更容易)?我只是不喜欢用

:'',    
它看起来像一张奇怪的笑脸

编辑:
for of
肯定是一条路要走,只是还没有。

使用


ES5对此烦恼的官方答案是
forEach
方法,该方法内置于
Array
类型中。如果您使用的是数组而不是对象,那么它可以实现相同的目的,尽管看起来有点不同

this.balls.forEach(function(ball) {
  this.space(ball);
}, this);
(该
,this
确保了该
关键字的正确上下文)

在具有箭头功能的ES6中,这只是:

this.balls.forEach(ball => {
  this.space(ball);
});

所有版本的JavaScript都将k in o的
定义为一种迭代键的方式,而不是数组索引或值,因此除非您迭代字典的键,否则这是您要避免的事情。

您可能只是在查看数组,对吗?如果值为空,那么为什么需要将其存储为对象。数组不适用于您有什么原因吗?您不应该在
循环中使用
for…来迭代数组fwiw。@原谅,因为常量时间查找。对象是键/值对的JS结构。如果不需要键/值对,请使用另一种结构,如数组。对于数组,您可以使用更方便的
arr.forEach
.For(var-key in..mapKeys(thing))?如果您只想循环遍历这些值,可以执行以下操作:u.each(thing,function(n){//do something with n})尝试使用For循环:python>rubysaly OP将此编辑添加到问题中“编辑:forEach不是答案,因为of def将是一条路,只是还没有。”@Andy Eugh…我已经看到了这个编辑,但是如果你对某个特定方法的反对是它所使用的措辞,你应该编写自己的语言,将你自己的偏好翻译成另一个。
ayCaramba!-->。子字符串(
this.balls.forEach(function(ball) {
  this.space(ball);
}, this);
this.balls.forEach(ball => {
  this.space(ball);
});