使用ES6技术栈实现
for of
可迭代对象( 包括 Array, Map, Set, String, TypedArray, arguments对象, NodeList对象) 上创建一个迭代循环, 调用自定义迭代钩子, 并为每个不同属性的值执行语句。
Object.entries
Object.entries返回一个给定对象自身可枚举属性的键值对数组。
const obj = {
a: 1,
b: 2
};
const keys = Object.entries(obj); // [ [ 'a', 1 ], [ 'b', 2 ] ]
function deepColon(obj) {
let colon = Array.isArray(obj) ? [] : {}
for (let [key, value] of Object.entries(obj)) {
if (value && typeof value === 'object') {
colon[key] = deepColon(value)
} else {
colon[key] = value;
}
}
return colon;
}