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]

<<:  冒险村24 - Design Pattern(4) - Calculator

>>:  Day 24. slate × Normalizing

Day17 vue.js 连接资料库显示文章

延续昨日 今天的目标是把首页的文章内容改成get资料库的文章内容 首先先去db.json 设定 我新...

​ 疫情下的BCP对策

企业或机构日常管理铁三角 1. 合理化:做该做的事、花该花的钱 (1). 省小钱花大钱,乱省一通得不...

【Day 04】String Methods

前言 今天要来介绍 string Methods,可以把 string 进行各种处理,来做出你想做的...

AE-Lightning 雷电云特效3-Day25

接续昨天的练习~ 1.拉入第二个素材(云的图档),这个素材主要便是主要遮挡的的云层 2.Ctrl+D...

#23 No-code 之旅 — Next.js 网站可以部署到哪里呢?

大家~ 今天文章会也会很短Q 昨天讲了静态网站可以部署到哪里之後,今天来讲 Next.js 的专案可...