刷题笔记(第七天)

1.找出对象 obj 不在原型链上的属性(注意这题测试例子的冒号后面也有一个空格~)
  • 返回数组,格式为 key: value
  • 结果数组不要求顺序
    输入:
    var C = function() {this.foo = ‘bar’; this.baz = ‘bim’;};
    C.prototype.bop = ‘bip’;
    iterate(new C());
    输出: [“foo: bar”, “baz: bim”]
function iterate(obj) {
  const result = [];
  for(let key in obj) {
      if(obj.hasOwnProperty(key)) {
          result.push(`${key}: ${obj[key]}`)
      }
  }
  return result;
}

obj.hasOwnProperty(key) 判断键值key对应的属性是否在对象obj自身。

2. 请补全JavaScript代码,要求返回参数数字的千分位分隔符字符串。

输入:_comma(12300)
输出:‘12,300’

function _comma(number) {
  if (number < 1000) {
      return number.toString()
  } else {
      return _comma(Math.floor(number/1000)) + ',' + _comma(number%1000)
  }
}

解题思路:在字符串长度不确定的情况下,可以使用递归。 _comma(number % 1000) 是获取数字最后三位,将其放在返回值的最后面,并且在前面加一个逗号,_comma(Math.floor(number / 1000)) 是将剩下的部分传入函数本身,不断重复,直到入参的number小于1000,返回 number.toString(),函数最后返回一个完整的千位分隔符的字符串。

3.请补全JavaScript代码,要求返回一个长度为参数值并且每一项值都为参数值的数组。

注意: 请勿直接使用for/while

const _createArray = (number) => {
    // 补全代码
    let arr = new Array(number)
    let newArr = arr.fill(number)
    return newArr
}

使用了数组的Array.fill()方法.

// fill()方法用一个固定值填充一个数组中从其实索引到中终止索引内的全部元素,不包括终止索引。
// 语法:arr.fill(value,start,end)
// value: 用来填充数组元素的值
// start: 起始索引,默认值为0
// end: 终止索引,默认值为this.length,如果不填的话,就包括终止索引
// 注: 1.返回修改后的数组 
//     2.如果start为负数,则开始索引被计算为length+start 
//     3.如果end为负数,则结束索引被计算为length+end
//     4.start和end参数是可选的,默认值分别为0和arr.length
//     5.当一个对象被传递给fill方法时,填充数组的是这个对象的引用
const arr = [1, 2, 3, 4]
console.log(arr.fill(0, 2, 4)); //[1,2,0,0]    从索引0开始,到索引2结束,不包括终止索引,将值替换为4
console.log(arr.fill(5, 1)); // [1,5,5,5]
console.log(arr.fill(6)); // [6,6,6,6]
// 示例
[1, 2, 3].fill(4);               // [4, 4, 4]
[1, 2, 3].fill(4, 1);            // [1, 4, 4]
[1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
[1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
[1, 2, 3].fill(4, 3, 3);         // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2);       // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN);     // [1, 2, 3]
[1, 2, 3].fill(4, 3, 5);         // [1, 2, 3]
console.log(Array(3).fill(4));   // [4,4,4]

你可能感兴趣的:(笔记,javascript)