
使用 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 AV1 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 原型都是不可枚举的 |