资讯专栏INFORMATION COLUMN

Object.keys了解

Big_fat_cat / 2616人阅读

摘要:需要注意的是返回一个对象的所有可枚举自身属性的属性名组成的数组是个不可枚举的属性只弹出属性名的排列顺序具有随机键排序的数组类对象会遍历出这个对象从原型链继承到的可枚举属性,而不会这里是第一次调用时的第一个参数结果为

以下是代码,这里我们只讲解这段代码

function cakes(recipe, available) {
  return Object.keys(recipe).reduce(function(val, ingredient) {
    return Math.min(Math.floor(available[ingredient] / recipe[ingredient] || 0), val)
  }, Infinity)  
}
Object.keys()

首先是Object.keys(),这里我刚看到的时候并不知道这是什么方法,然后去MDN查了查这个方法,发现

Object.keys()方法会返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用for-in循环遍历该对象时返回的顺序一致 (顺序一致不包括数字属性)(两者的主要区别是 for-in 还会遍历出一个对象从其原型链上继承到的可枚举属性)。

需要注意的是:

1.返回一个对象的所有可枚举自身属性的属性名组成的数组

// getFoo是个不可枚举的属性
var my_obj = Object.create({}, { getFoo : { value : function () { return this.foo } } });
my_obj.foo = 1;

alert(Object.keys(my_obj)); // 只弹出foo

2.属性名的排列顺序

//具有随机键排序的数组类对象
var an_obj = { 100: "a", 2: "b", 7: "c" };
console.log(Object.keys(an_obj)); // console: ["2", "7", "100"]

3.for-in会遍历出这个对象从原型链继承到的可枚举属性,而keys()不会

reduce()

arr.reduce(callback,[initialValue]),这里initialValue是第一次调用callback时的第一个参数

[0,1,2,3,4].reduce( (accumulator, currentValue, currentIndex, array) => {
  return accumulator + currentValue;
}, 10); //结果为10+0+1+2+3+4=20

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81405.html

相关文章

  • 【译】如何在 JavaScript 中使用对象的方法

    摘要:中的所有对象都来自父的构造函数。不同于数组的原型方法例如和只能被数组实例使用,对象方法直接来自构造函数,并使用对象实例作为参数。这称为静态方法。创建对象的键值对的嵌套数组。可用于确定对象是否已冻结,并返回布尔值。 原文:How To Use Object Methods in JavaScript作者:Tania Rascia译者:博轩 介绍 JavaScript 中,对象是 键/值 ...

    longmon 评论0 收藏0
  • js 地址的封装以及地址栏的参数获取

    摘要:例如传入字符串,数组,返回索引传入对象,返回对象的好了了解了下面我们就可以进行地址与对象的拼接了地址与对象拼接的代码地址的参数取值代码第一种方法传统字符串转对象第二种方法正则调用方法 有时候我们封装一个ajax的get的方法需要把对象拼接到地址上面,这里我介绍一个Object.keys,这是一个非常好用对象属性。例如说 const url = http://127.0.0.1:4000...

    firim 评论0 收藏0
  • 一篇文章带你进一步了解object属性

    摘要:返回值在指定原型对象上添加新属性后的对象。该方法返回值被用作属性值。这个方法返回值就是属性存取表达式返回的值。 走在前端的大道上 最后更新 2018.12.27 本篇将自己读过的相关 javascript Object方法 文章中,对自己有启发的章节片段总结在这(会对原文进行删改),会不断丰富提炼总结更新。 1.Object.keys遍历 返回一个数组,包括对象自身的(不含继承的)所有...

    leap_frog 评论0 收藏0
  • 深入了解JavaScript对象(2)--函数、对象

    摘要:属性是函数独有的,表明该对象可以被执行。李四张三张三李四李四李四张三属性探测由于属性可以在任何时候添加,所以有时候就有必要检查对象是否已有一个属性。张三属性特征通过方法来改变属性特征。 1.[[Call]]属性是函数独有的,表明该对象可以被执行。由于仅函数拥有该对象,ECMAScript定义typeof操作符对任何具有[[Call]]属性的对象返回function。 注:某些浏览器曾经...

    darkerXi 评论0 收藏0
  • JavaScript:对Object对象的一些常用操作总结

    摘要:一可以用作对象的复制可以用作对象的合并注意目标对象自身也会改变。对象四返回一个数组,包括对象自身的不含继承的所有可枚举属性不含属性的键名。该方法返回被冻结的对象。方法判断一个对象是否被冻结。 JavaScript对Object对象的一些常用操作总结。 一、Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object....

    马龙驹 评论0 收藏0

发表评论

0条评论

Big_fat_cat

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<