iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Modern Web

JavaScript學習日記系列 第 27

JavaScript學習日記 : Day27 - 重做原生方法 -- Object

測試範例:

const cat = {
    name : "Toby",
    color:"虎斑",
    age:2
}

1. entries

將object轉換為帶有key與value的數組:

Object.prototype.ownEntries = function(obj) {
    const result = [];
    for(let key in obj) {
        obj.hasOwnProperty(key) && result.push([key,obj[key]])
    }
    return result;
}

console.log(Object.ownEntries(cat)); 
// [["name", "Toby"],["color", "虎斑"],["age", 2]] 

2. fromEntries

與entries相反,把帶有key與value的數組轉換為object:

Object.prototype.ownEntries = function(arr) {
    const result = {};
    for(let i = 0; i < arr.length; i++) {
        result[arr[i][0]] = arr[i][1]
    }
}

console.log(Object.fromEntries([["name", "Toby"],["color", "虎斑"],["age", 2]]))

// 
{
    name : "Toby",
    color:"虎斑",
    age:2
}

3. keys

Object.prototype.ownKeys = function(obj) {
    const result = [];
    for(let key in obj) {
        obj.hasOwnProperty(key) && result.push(key)
    }
    return result;
}

console.log(Object.ownKeys(cat)); // ["name", "color", "age"]

4. values

Object.prototype.ownValues = function(obj) {
    const result = [];
    for(let key in obj) {
        obj.hasOwnProperty(key) && result.push(obj[key])
    }
    return result;
}

console.log(Object.ownValues(cat)); // ["Toby", "虎斑", 2]

上一篇
JavaScript學習日記 : Day26 - 重做原生方法 -- Array
下一篇
JavaScript學習日記 : Day28 - console實用技巧
系列文
JavaScript學習日記30

尚未有邦友留言

立即登入留言