使用 es6
Object.entries(stashData).forEach(([key, value]) => {
// do something with key and value
});
而不是
Object.keys(stashData).forEach((key) => {
// do something with key and stashData[key]
});
为什么不用 for...in
这个更令人讨厌, 因为需要使用 hasOwnProperty. 随便加个 if 然后代码都会恶心.
然而还是没法直接访问 stashData[key], 很令人伤心.
1
nikolai 2018-05-21 03:34:21 +08:00
```
var object = { a: 10, b: 20 }; for (var key in object) { var x = object[key]; console.log(x); // 10 // 20 } ``` |
3
artandlol 2018-05-21 07:09:03 +08:00 via iPhone
首先你要有个对象
|
4
meszyouh 2018-05-21 07:12:23 +08:00 via Android
Object.values
|
5
zhlssg 2018-05-21 07:46:10 +08:00 via iPhone
Nice
|
6
Mutoo 2018-05-21 08:06:15 +08:00
es6 的 Map 和 for of 了解下
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map |
7
h1367500190 2018-05-21 08:24:03 +08:00
Object.entries 和 Object.values 好像是同属一个 stage 吧?
|
8
h1367500190 2018-05-21 08:25:27 +08:00
@Mutoo Set Map 序列化和反序列化挺麻烦的
|
9
sxy62016 2018-05-21 09:42:47 +08:00 via Android
var obj = Object.create(null)
|
10
DOLLOR 2018-05-21 10:17:09 +08:00
Object.keys()、Object.entries()、Object.values()还满足不了大部分场景么?
如果还不够,那还有 Object.getOwnPropertyNames()、Object.getOwnPropertyDescriptors()、Reflect.ownKeys()。 |
11
VDimos 2018-05-21 10:21:25 +08:00 via Android
for in 遍历会遍历原型的,object.keys 不会。然而通常情况下 for in 就行了,毕竟一般 object 原型都是不可枚举的
|