FreeCodeCamp 高级算法题 - 更新库存

更新库存 (Inventory Update)

题目链接

问题解释

  • 这个 function 接收两个二维数组参数 arr1arr2。其中 arr1 为更新前的现有库存,arr2 为需要更新的内容。返回值为更新后的库存,用二维数组表示
  • 如果 arr1[[1, 'a'], [2, 'b']]arr2[[10, 'a'], [100, 'b'], [1, 'c']],则返回值应为 [[11, 'a'], [102, 'b'], [1, 'c']]

FreeCodeCamp 高级算法题 - 计算找零

计算找零 (Exact Change)

题目链接

问题解释

  • 这个 function 接收三个参数,price 为购买总价,cash 为付款金额,cid 为收银机中可用的零钱。返回值为应找回的零钱列表
  • 需要注意的是,cid 中,每个子数组的第一个元素代表面值,第二个元素代表这个面值的总额。比如 ["TEN", 30.00] 就表示十元纸币共有 30 元,即三张
  • 如果 price19.50cash20.00cid[["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.10], ["QUARTER", 4.25], ["ONE", 90.00], ["FIVE", 55.00], ["TEN", 20.00], ["TWENTY", 60.00], ["ONE HUNDRED", 100.00]],则返回值应为 [["QUARTER", 0.50]]
  • 注意,这道题的基本解法虽然可以通过 FCC 的测试,但明显是有漏洞的

FreeCodeCamp 中级算法题 - 可选的参数

可选的参数 (Arguments Optional)

题目链接

问题解释

  • 这个 function 在定义的时候没有声明任何参数,但在调用的时候会传入一个或者两个参数。最后返回两数之和
  • 如果参数是一个,那么调用方式就是 add(1)(2) 的形式,返回值为 3
  • 如果参数是两个,那么调用方式就会是 add(1, 2) 的形式,返回值也为 3

FreeCodeCamp 中级算法题 - 检查对象属性

检查对象属性 (Everything Be True)

题目链接

问题解释

  • 这个 function 接收一个 JSON 对象参数 collection 和一个字符串参数 pre。若 pre 表示的属性在 collection 中的每一个对象都存在且对应的值为真则返回 true,否则返回 false
  • 如果 collection[{a: 1, b: 2}, {a: 1, c: 3}]pre"a",返回值应为 true;如果这时候 pre"c",则返回值为 false
  • 另外,如果 collection[{a: 0, b: 2}, {a: false, c: 3}]pre"a",那么也应该返回 false
,