编程题

一、格式化金钱

每千分位加逗号

function format(num){
	num += '';
	if (!num.includes('.')) num += '.';
	return num.replace(/(\d)(?=(\d{3})+\.)/g,function($0,$1){
		return $1 + ',';
	}).replace(/\.$/,'');
}
console.log(format('123456789.0'))

二、数组去重

let arr =[1,'1',2,1,1,3,2,'4'];
let set = [...new Set(arr)];

console.log(set) 

三、ES6继承

class Person{
	constructor(name,age,job){
		this.name = name;
		this.age = age;
		this.job = job;
	}
	sayName(){
		console.log((this.name))
	}
}


var person1 = new Person('ofeii',21,'student');

person1.sayName();

class VipPerson extends Person{
	constructor(name,age,job,level){
		super(name,age,job);
		this.level = level;
	}
	sayLevel(){
		console.log(this.level);
	}	
}

var person2 = new VipPerson('james',23,'palyer',1)

person2.sayLevel();

四、数组返回数字

给定一个数组,返回所有的数字,如: [1,'3',false,null,100] ===> [1, 3, 100]

var arr = [1,'3',false,null,undefined,100];
var result = [];
for(var i=0;i<arr.length;i++){
	if (typeof(arr[i]) === 'number') {
		result.push(arr[i]);
	}
}
console.log(result)

五、对象识数组

六、实现函数

 f(1).val = 1  f(10)(100)(1000)(10000).val = 11110

function f (val){
	function inner (innerVal){
		return f(val + innerVal);
	}
		inner.val=val;
		return inner;
}
console.log(f(10)(100)(1000)(10000).val)

七、a+b+c=10?

有3个-10--10之间的整数,写一个方法这三个数一共有多少可能想加等于10

function add3s (){
	var sum = 0;
	var count = 0;
	for (var i = -11; i < 11; i++) {
		for(var j = -11; j < 11; j++){
			for(var k = -11; k < 11; k++){
				sum = i + j + k;
				if (sum == 10) {
					count+=1;
				}
			}
		}
	}
	console.log(count);
}

add3s();

八、两个大整数相加

function sumString(a,b){
	var res = '', c = 0;
	a = a.split('');
	b = b.split('');

	while (a.length || b.length || c){
		c += ~~a.pop() + ~~b.pop();
		res = c % 10 + res;
		c = c>9
	}
	return res.replace(/^0+/,'');
}

console.log(sumString('77777777777777777777','77777777777777777777'))

九、最高词频

function counts(article){
	article = article.trim().toUpperCase();
	var arr = article.match(/[A-z]+/g);
	article = " " + arr.join(" ")+ " ";
	var word, max = 0, num = 0,maxword = "";
	for(var i=0; i<arr.length; i++){
		word = new RegExp(" " + arr[i] + " ",'g');
		num = article.match(word).length;
		if(num>max){
			max = num;
			maxword = arr[i];
		}
	}
	console.log(maxword + " " + max);
}
counts("Age has has reached the end of the beginning of a word.")