zoukankan      html  css  js  c++  java
  • 如何遍历对象,hasOwnProperty()方法,和 in 的区别【CordeWars实践】 Pete, the baker

    1.如何遍历对象

    for in

    但是for in会返回继承的属性。如果只需要返回对象自身的属性,需要用hasOwnProperty()方法筛选

    ※更推荐使用Object.keys()

    2.hasOwnProperty与in的区别

    hasOwnProperty() 只能判断是否是属于自身的属性

    in 可以找到原型上的属性

    3.CodeWars实战:Pete, the baker

    Pete likes to bake some cakes. He has some recipes and ingredients. Unfortunately he is not good in maths. Can you help him to find out, how many cakes he could bake considering his recipes?

    Write a function cakes(), which takes the recipe (object) and the available ingredients (also an object) and returns the maximum number of cakes Pete can bake (integer). For simplicity there are no units for the amounts (e.g. 1 lb of flour or 200 g of sugar are simply 1 or 200). Ingredients that are not present in the objects, can be considered as 0.

    Examples:

    // must return 2
    cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200}); 
    // must return 0
    cakes({apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000}); 

    我的解答:

    function cakes(recipe, mine) {
      var arr=[];
      for (var prop in recipe){
        if(recipe.hasOwnProperty(prop)){
          if(mine.hasOwnProperty(prop)){
            arr.push(Math.floor(mine[prop]/recipe[prop]));
          }
          else return 0;
        }
      }
      return Math.min(...arr);
    }
  • 相关阅读:
    git上传本地项目
    第十一章 持有对象
    java 闭包与回调
    类名.class 类名.this 详解
    匿名内部类
    第十章 内部类
    Java简单调用Zookeeper服务
    Linux下ZooKeeper集群安装
    Linux自动化安装JDK
    linux下初步实现Keepalived+Nginx高可用
  • 原文地址:https://www.cnblogs.com/hikki-station/p/13810438.html
Copyright © 2011-2022 走看看