我想知道是否有一种方法可以在JavaScript中做一些类似PHP foreach循环的事情。我正在寻找的功能是类似这样的PHP代码片段:

foreach($data as $key => $value) { }

我在看JS for. in循环,但似乎没有办法指定as。如果我用一个'normal' for循环(for(var I = 0;I < data.length;i++),有办法抓取键=>值对吗?


当前回答

为…他会为你工作的。

for( var key in obj ) {
  var value = obj[key];
}

在现代JavaScript中,你也可以这样做:

for ( const [key,value] of Object.entries( obj ) ) {

}

其他回答

在提出这个问题后的过去几年中,Javascript添加了一些新特性。其中一个是客体。条目的方法。

下面是直接从MDN复制的代码片段


const object1 = {
  a: 'somestring',
  b: 42
};

for (let [key, value] of Object.entries(object1)) {
  console.log(`${key}: ${value}`);
}

你可以用for. in来表示。

for (var key in data)
{
    var value = data[key];
}

为…他会为你工作的。

for( var key in obj ) {
  var value = obj[key];
}

在现代JavaScript中,你也可以这样做:

for ( const [key,value] of Object.entries( obj ) ) {

}

为什么不简单地说

var donuts = [
{ type: "Jelly", cost: 1.22 },
{ type: "Chocolate", cost: 2.45 },
{ type: "Cider", cost: 1.59 },
{ type: "Boston Cream", cost: 5.99 }];

donuts.forEach(v => {console.log(v["type"]+ " donuts cost $"+v["cost"]+" each")});

没有人提到Object。钥匙,所以我会提到它。

Object.keys(obj).forEach(function (key) {
   // do something with obj[key]
});