js 物件轉為js陣列 && Object方法

火雲邪神發表於2018-05-06
const obj = {
       "phone_num_wxx": "使用者手機號",
       "phone_city_wxx": "手機號歸屬地",
       "sex_wxx": "性別",
       "income_wxx": "收入",
       "age_wxx": "年齡"
   };
   let arr = [];
   Object.keys(obj).forEach(v => {
       let o = {};
       o[v] = obj[v];
       arr.push(o)
   })
console.log(arr)

複製程式碼

Object.keys方法是JavaScript中用於遍歷物件屬性的一個方法 。它傳入的引數是一個物件,返回的是一個陣列,陣列中包含的是該物件所有的屬性名。

var cat= { 
name:’mini’, 
age:2, 
color:’yellow’, 
desc:”cute” 
}

複製程式碼

console.log(Object.keys(cat)); // ["name", "age", "color", "desc"] 、console.log(Object.values(cat)); // ["’mini", "2", "yellow", "cute"]

1.傳入字串,返回索引

var str = 'ab1234';
console.log(Object.keys(obj));  //[0,1,2,3,4,5]

複製程式碼

2.返回一個物件屬性陣列

var person={
                firstName:"David",
                lastName:"Walsh",
                others:"Smith"
            };
            Object.keys(person).forEach(function(trait){
                console.log('person',trait,':',person[trait]);
            });
複製程式碼

3.遍歷字串

var str = 'zhanglong';
Object.keys(str).forEach(function (item,index) {
    switch (index) {
        case 0 : alert(str[item]);//z
    }

})
/////////////////////////
4.
// 類陣列物件,就是含 length 和索引屬性的物件
// 類陣列物件轉化為陣列
let obj22 = {
 '0': 3,
 '1': 13,
 '2': 23,
 '3': 33,
 'length': 4
}
for (var i = 0; i < obj22.length; i++) {
    console.log('類陣列物件' + obj22[i])
}
console.log(Array.prototype.slice.call(obj22));// [3, 13, 23, 33]
// Array.from方法:可以將類陣列物件和可迭代物件轉換為陣列    
console.log(Array.from(obj22))//[3, 13, 23, 33]

 var obj = {
            a:1,
            b:2,
            c:3
        }

    for (i in obj) {    
        console.log(i + obj[i]);//迴圈輸出鍵 和 值   //a1 b2 c3  
    }
    var arr = [];
    var obj2 = {};
    console.log(Object.keys(obj));//輸出鍵陣列 ["a", "b", "c"]
    Object.keys(obj).forEach(function (item,index) {
     obj2[item] = obj[item];    
        arr.push(obj2);
    })


    // var obj = {}    
    // var arr = [];
    //  obj.name = 'maole';
    // arr.push(obj)
    // console.log(arr);
    // var a = delete obj.name;//輸出布林值   
複製程式碼

Object得所有方法

1.Object.keys()ES5 引入了Object.keys方法,返回一個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵名。

var obj = { foo: "bar", baz: 42 };  
Object.keys(obj)  
// ["foo", "baz"]  
複製程式碼

ES7 有一個提案,引入了跟Object.keys配套的Object.values和Object.entries。

2.Object.values()

Object.values方法返回一個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值。正好與Object.keys相對接

var obj = { foo: "bar", baz: 42 };  
Object.values(obj)  
// ["bar", 42]  

//返回陣列的成員順序
var obj = { 100: 'a', 2: 'b', 7: 'c' };  
Object.values(obj)  
// ["b", "c", "a"]  
//屬性名為數值的屬性,是按照數值大小,從小到大遍歷的,因此返回的順序是b、c、a。
複製程式碼

3.Object.entries

Object.entries方法返回一個陣列,成員是引數物件自身的(不含繼承的)所有可遍歷( enumerable )屬性的鍵值對陣列。

var obj = { foo: 'bar', baz: 42 };  
Object.entries(obj)  
//Object.values會過濾屬性名為 Symbol 值的屬性。  
Object.values({ [Symbol()]: 123, foo: 'abc' });  
// ['abc']  
複製程式碼

相關文章