1,千位符
//一行代码解决
number.toLocaleString();
//正则
function commafy(num) {
return num && num
.toString()
.replace(/(\d)(?=(\d{3})+\.)/g, function($1, $2){
return $2 + ',';
})
}
//第二 种方法
function commafy(num) {
var arr = [];
var array = [];
var str = num.split('.')[0].toString();
array.push(num.split('.')[1]);
var iNum = str.length % 3;
while(iNum !==0){
arr.push(str.substring(0, iNum));
iNum = 0;
}
var j = str.length % 3;
for(var i =0 ;i<(str.length/3)-1;i++){
arr.push(str.substring(j, j+3));
j+=3;
}
array.unshift(arr.join(','));
return array.join('.');
}
2,实现随机排序
//方法一,循环交换
var arr = [1,2,3,4,5,6,7,8,9,10];
function random(arr) {
for(var i = 0;i<arr.length;i++) {
var randomIndex = parseInt(Math.random()*arr.length);
[arr[i],arr[randomIndex]] = [arr[randomIndex],arr[i]];
}
return arr;
}
//方法二,将随机数填到新数组,并将旧数组中的填入数删除
function random(arr) {
var newArray = [];
while(arr.length>0) {
var randomIndex = parseInt(Matn.random()*arr.length);
newArray.push(arr[randomIndex]);
arr.splice(randomIndex, 1);
}
return newArray;
}
//方法三,利用arr.sort
arr.sort(function () {
return Math.random() - 0.5;
})
3,js实现继承
//原型继承
function Parent(){
this.name = "IURUO";
}
function Child() {
this.age = 21;
}
Child.prototype = new Parent();//通过原型继承
4,创建对象的方法
1,对象字面量
var obj = {
name:'IU',
age:'21'
}
2,function模拟无参的构造函数
function Human() {}
var Ming = new Human();
Ming.name = 'OO';
Ming.age = 18;
Ming.doing = function () {
console.log(Ming.age);
}
3,function模拟含参构造函数
function Pet(name,age,hobby) {
this.name = name;
this.age = age;
this.miss = function () {
console.log('我是'+this.name+',我喜欢'+this.hobby+',是个程序媛');
}
}
//4,工厂方式
var Wang = new Object();
Wang.age = 22333;
Wang.work = function () {
console.log(this.age);
}
//5,原型方法创建
function Dog () {}
Dog.prototype.name = 'MV';
Dog.prototype.work = () => {
cosole.log(this.name +'是个贪吃鬼');
}
//6,混合方式创建
function Car (name,price) {
this.name =name;
this.price = price;
}
Car.portotype.cell = () =>{
console.log('我的售价是'+this.price);
}
5,返回重复元素
function findRepeat(arr) {
var temp = [];
arr.forEach(function(item){
(arr.indexOf(item) !== arr.lastIndexOf(item) && arr.indexOf(item) !== -1) && temp.push(item);
})
return Array.from(new Set(temp));
}
6,直接插入排序
function insertSort(arr){
for(let i=1; i < arr.length; i++){
let temp = arr[i];
let j;
for(j=i-1; j >= 0; j--){
if(arr[j] > temp) {
arr[j+1] = arr[j];
} else {
break;
}
}
arr[j+1] = temp;
}
return arr;
}
7,快速排序
function quickSort(arr) {
if(arr.length <= 1){
return arr;
}
let pivot = Math.floor((arr.length-1)/2);
let val = arr[pivot];
let less = [];
let more = [];
arr.splice(pivot,1);
arr.forEach(function(item){
item > val ? more.push(item) : less.push(item);
})
return arguments.callee(less).concat([val],arguments.callee(more));
}