// FED54属性遍历
// 描述
// 找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)
// 1、返回数组,格式为 key: value
// 2、结果数组不要求顺序
// 示例1
// 输入:
// var C = function() {this.foo = 'bar'; this.baz = 'bim';};
// C.prototype.bop = 'bip';
// iterate(new C());
// 输出:
// ["foo: bar", "baz: bim"]
function iterate(obj) {
// 方法1 遍历obj的属性,用hasOwnProperty属性判断是否仅自己的实例属性
let ret = [];
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
ret.push(key + ": " + obj[key]);
}
}
return ret;
// 方法2 用Object.keys方法,仅遍历自己的实例属性
/*
** Object.keys() 方***返回一个由一个给定对象的自身可枚举属性组成的数组,
** 数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
**
** 语法: Object.keys(obj)
**
** 参数: obj 要返回其枚举自身属性的对象
**
** 返回值: 一个表示给定对象的所有可枚举属性的字符串数组
*/
// let properties = Object.keys(obj);
// let ret = [];
// for (let key in properties) {
// ret.push(properties[key] + ": " + obj[properties[key]]);
// }
// return ret;
}