将一个对象转换成数组
var obj = {a: 1, b: 2, c: 3};
var arr = [];
for(var key in obj){
if(!obj.hasOwnProperty(key)){
continue;
}
var item = {};
item[key] = obj[key];
arr.push(item);
}
console.log(arr); // [{a: 1}, {b: 2}, {c: 3}]
// 将Object的属性输出成Array
function objOfPropertyToArr(object) {
var arr = [];
var i = 0;
for (var item in object) {
arr[i] = item;
i++;
}
return arr;
}
// 将Object的属性值输出成Array
function objOfValueToArr(object) {
var arr = [];
var i = 0;
for (var item in object) {
arr[i] = object[item];
i++;
}
return arr;
}
测试
var obj = {
name: “oschina”,
age: “18”
}
objOfPropertyToArr(obj); // 输出[“name”, “age”]
objOfValueToArr(obj); // 输出[“oschina”, “18”]
笔记:
hasOwnProperty判断一个对象是否有名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
如果该属性或者方法是该 对象自身定义的而不是器原型链中定义的 则返回true;否则返回false;
格式如下:
object.hasOwnProperty(proName);
判断proName的名称是不是object对象的一个属性或对象。
isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false。
格式如下:
object1.isPrototypeOf(object2);
object1是一个对象的实例;
object2是另一个将要检查其原型链的对象。
原型链可以用来在同一个对象类型的不同实例之间共享功能。
如果 object2 的原型链中包含object1,那么 isPrototypeOf 方法返回 true。
如果 object2 不是一个对象或者 object1 没有出现在 object2 中的原型链中,isPrototypeOf 方法将返回 false。