var obj = [
{
name: '1111',
account: {
'01': { name: '1.1' },
'02': { name: '1.2' },
'03': { name: '1.3' },
'04': { name: '1.4' },
'05': { name: '1.5' },
}
}
]
var nowObj = obj[0].account;
1、for…in
任意顺序遍历对象所有的可枚举属性(包括对象自身的和继承的可枚举属性,不含 Symbol 属性)
for (const key in nowObj) {
console.log(nowObj[key].name);
}
2、 Object.keys()
Object.keys() ES5 新增的一个对象方法,该方法接收一个对象为参数,返回一个数组,包含该对象自有的可枚举属性(不含继承的和Symbol属性),数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。
console.log(Object.keys(nowObj));
// 简单数组
const arr = ["a", "b", "c"];
console.log(Object.keys(arr)); // ['0', '1', '2']
// 类数组对象
const obj = { 0: "a", 1: "b", 2: "c" };
console.log(Object.keys(obj)); // ['0', '1', '2']
// 键的顺序随机的类数组对象
const anObj = { 100: "a", 2: "b", 7: "c" };
console.log(Object.keys(anObj)); // ['2', '7', '100']
// getFoo 是一个不可枚举的属性
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = 1;
console.log(Object.keys(myObj)); // ['foo']
3、Object.values()
返回一个给定对象的自有可枚举字符串键属性值组成的数组。
console.log(Object.values(nowObj));
const obj = { foo: "bar", baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
// 类数组对象
const arrayLikeObj1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']
// 具有随机键排序的类数组对象
// 使用数字键时,将按键的数字顺序返回值
const arrayLikeObj2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']
// getFoo 是一个不可枚举的属性
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = "bar";
console.log(Object.values(myObj)); // ['bar']