遍历对象键值对的四种方法
遍历对象键值对的四种方法
·
1、object.keys
for (var key of Object.keys(someObject)) {
console.log(key + ': ' + someObject[key]);
}
2、使用 Generator 函数将对象重新包装成数组
function* entries(obj) {
for (let key of Object.keys(obj)) {
yield [key, obj[key]];
}
}
for (let [key, value] of entries(obj)) {
console.log(key, '->', value);
}
3.for in循环
for in 遍历数组的任意属性(symbol 类型除外)
for (variable in object){
statements
}
variable
每次被迭代时,variable 被赋予不同的属性值
object
非 symbol 类型的可枚举可迭代的对象
for in 不应使用在数组中
如果只考虑在对象本身的属性,而不是它的原型,getOwnPropertyNames () 或者执行 hasOwnproperty () 来确定是否含有本身的对象属性,也能使用(propertyIsEnumerable);或者,如果你知道不会有任何外部代码干扰,您可以使用检查方法扩展内置原型。(参考 mdn)
4.for of 在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句;
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
for (let entry of iterable) {
console.log(entry);
}
// ["a", 1]
// ["b", 2]
// ["c", 3]
for (let [key, value] of iterable) {
console.log(value);
}
// 1
// 2
// 3
可以由 break, throw continue 或 return 终止。在这些情况下,迭代器关闭。
这个是使用方法,可以后去数组或对象的每一个 value 值并对其进行操作(如果不向 value 改变可以用 const 定义变量 for (const value of iterable))
let iterable = [10, 20, 30];
for (let value of iterable) {
value += 1;
console.log(value);
}
// 11
// 21
// 31
更多推荐
已为社区贡献2条内容
所有评论(0)