>

美洲杯在线投注_2019美洲杯外围投注[投注官网]

热门关键词: 美洲杯在线投注,2019美洲杯外围投注[投注官网]

汤姆大叔的6道js题目

- 编辑:美洲杯在线投注 -

汤姆大叔的6道js题目

  看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试。

汤姆大叔的6道javascript编程题题解

  看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试。

图片 1

图片 2

 1、找出数字数组中最大的元素(使用Math.max函数)

1
2
3
var a = [1, 2, 3, 6, 5, 4];
var ans = Math.max.apply(null, a);
console.log(ans);  // 6

  这题很巧妙地用了apply,如果不是数组,是很多数字求最大值,我们知道可以这样:

1
2
var ans = Math.max(1, 2, 3, 4, 5, 6);
console.log(ans); // 6

  而apply的第二个参数正是一个数组,都不用进行转换了。

  还有一种用eval toString的实现:

1
2
3
var a = [1, 2, 3, 6, 5, 4];
var ans = eval( 'Math.max(' a.toString() ')');
console.log(ans); // 6

 1、找出数字数组中最大的元素(使用Math.max函数)

var a = [1, 2, 3, 6, 5, 4];  var ans = Math.max.apply(null, a);  console.log(ans);  // 6  

  这题很巧妙地用了apply,如果不是数组,是很多数字求最大值,我们知道可以这样:

var ans = Math.max(1, 2, 3, 4, 5, 6);   console.log(ans); // 6  

  而apply的第二个参数正是一个数组,都不用进行转换了。

  还有一种用eval toString的实现:

var a = [1, 2, 3, 6, 5, 4];  var ans = eval( 'Math.max('   a.toString()   ')');  console.log(ans); // 6

2、转化一个数字数组为function数组(每个function都弹出相应的数字)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var a = [1, 2, 3, 4, 5, 6];
var len = a.length;
for(var i = 0; i < len; i ) {
  var num = a[i];
  (function(num) {
    var f = function() {
      console.log(num);
    };
    a[i] = f;
  })(num);
}
 
for(var i = 0; i < len; i )
  a[i]();
// 1
// 2
// 3
// 4
// 5
// 6

  我觉得这跟给n个a标签,弹出相应标签对应的编号是一个类型的题,用闭包保存变量到内存即可。

2、转化一个数字数组为function数组(每个function都弹出相应的数字)

var a = [1, 2, 3, 4, 5, 6];  var len = a.length;  for(var i = 0; i < len; i  ) {    var num = a[i];    (function(num) {      var f = function() {        console.log(num);      };      a[i] = f;    })(num);  }    for(var i = 0; i < len; i  )    a[i]();  // 1  // 2  // 3  // 4  // 5  // 6  

  我觉得这跟给n个a标签,弹出相应标签对应的编号是一个类型的题,用闭包保存变量到内存即可。

3、给object数组进行排序(排序条件是每个元素对象的属性个数)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var a = {
  name: 'hanzichi',
  age: 10,
  location: 'china'
};
 
var b = {
  name: 'curry'
};
 
var c = {
  name: 'kobe',
  sex: 'male'
};
 
Object.prototype.getLength =  function() {
  var num = 0;
  for(var key in this) {
    if(this.hasOwnProperty(key))
      num ;
  }
  return num;
};
 
var arr = [a, b, c];
arr.sort(function(a, b) {
  return a.getLength() > b.getLength();
});
console.log(arr);

  这题不难,数组排序,当然是sort,排序条件是对象的属性个数,可以写个函数计算,注意可能要用hasOwnProperty判断下。

本文由计算机教程发布,转载请注明来源:汤姆大叔的6道js题目