字符串变数组split() 'aadaf'.split(''). // ['a', 'a', 'd', 'a', 'f'] 'aadaf|jkl'.split('|') // ['aadaf', 'jkl'] "a2b3c4d5e678f12g".split(/\d+/) // 把以匹配的数字为分隔符来切分字符串 // ['a', 'b', 'c', 'd', 'e', 'f', 'g'] 'JavaScript'.split("", 4); //按顺序从左到右,仅分切4个元素的数组 // ['J', 'a', 'v', 'a'] 数组变字符串join() ['J', 'a', 'v', 'a'].join() // 'J,a,v,a' ['J', 'a', 'v', 'a'].join("") // 'Java' ['J', 'a', 'v', 'a'].join("|") // 'J|a|v|a' 反转数组顺序reverse reverse() [1,2,3,8,9,4,5,7].reverse() // [7, 5, 4, 9, 8, 3, 2, 1] 截取字符串slice slice(start, end) '123456789'.slice(0,4) // '1234' 获取指定下标数组splice var arr = [1,2,4,6,8] var newArr = arr.splice(0,4) console.log(arr) //[8] console.log(newArr) //[1, 2, 4, 6] 数组指定位置 删除 和 添加元素splice(2, 0, x) var fruits = ["Banana", "Orange", "Apple", "Mango"]; var newArr = fruits.splice(2, 1, "Lemon", "Kiwi"); console.log(fruits) // ['Banana', 'Orange', 'Lemon', 'Kiwi', 'Mango'] console.log(newArr) // ['Apple'] 删除数组指定元素,改变原数组 [1,2,3,4,5].splice(2, 2) // [1,2,5] 1,2,3,4,5].splice(2) // [1,2] 返回位置 1 的字符 "Hello world!".charAt(1) // e 找某个元素是否存在,并返回该元素下标 [1,2,4,6,8].indexOf(2) // 1 'sfergg'.indexOf('e') // 2 ,找不到返回-1
题目:1: '123456789' 每4个字符插入一个空格
function format(str) {
var s = 0, e = 4, arr=[]
var leth = str.length
var m = Math.round(leth/4)
for (var i = 0; i<= m; i++) {
arr.push(str.slice(s, e))
s = e
e = e + 4
}
var newStr = arr.join(' ')
return newStr
}
format('123456789') // '1234 5678 9'
// 获取 1-10直接的随机整数
Math.round(Math.random()*10)
1: 冒泡排序法
function bubbleSort3 (arr3) {
var low = 0;
var high = arr.length - 1;
//设置变量的初始值
var tmp, j;
console.time('2.改进后冒泡排序耗时');
while (low < high) {
for (j = low; j <high; ++j) {
//正向冒泡,找到最大者
if (arr[j] >arr[j +1]) {
tmp = arr[j];
arr[j] = arr[j +1];
arr[j +1] = tmp;
}
--high;
//修改high值, 前移一位
}
for (j = high;j >low;--j) {
//反向冒泡,找到最小者
if (arr[j] < arr[j -1]) {
tmp=arr[j];
arr[j] =arr[j -1];
arr [j -1] = tmp;
}
++low;
//修改low值,后移一位
}
}
console.timeEnd('2.改进后冒泡排序耗时');
return arr3;
}
var arr = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(bubbleSort3(arr));
//[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
function bubbleSort(arr) {
for (let i = 0; i < arr.length; i++) {
// 如:长度10,0--9; 1---8; 2---7
for (let j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) { // 第一轮下来。最大值已经放在末尾
let temp = arr[j]; // 第二轮下来,第二大值也已就位,第二轮,不比较最后1位
arr[j] = arr[j + 1]; // 第二轮下来,第三大值也已就位,第三轮,不比较最后2位
arr[j + 1] = temp;
}
}
}
return arr;
}
var arr = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
console.log(bubbleSort3(arr));
// [2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
var arr = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48];
arr.sort(function(a, b){
return b - a
})
console.log(arr) // [50, 48, 47, 46, 44, 38, 36, 27, 26, 19, 15, 5, 4, 3, 2]
arr.sort(function(a, b){
return a - b
})
console.log(arr) // [2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
2: 生成指定长度的随机字符串
function randomString(n){
var str = 'abcdefghijklmnopqrstuvwxyz0123456789';
var tmp = '';
for(var i=0;i<n;i++)
// Math.random(): 0-1之间数, str.length: 字符串长度
// Math.random() * str.length:生成不大于字符串长度的随机数
tmp += str.charAt(Math.round(Math.random()*str.length));
return tmp;
}
3: 阶乘
//1. 非递归实现
function factorialize(num) {
var result = 1;
if(num < 0) return -1;
if(num == 0 || num == 1) return 1;
while(num>1) {
result *= num--;
}
return result;
}
//2. 递归实现
function factorialize(num) {
var result = 1;
if(num < 0) return -1;
if(num == 0 || num == 1) return 1;
if(num > 1){
return num*factorialize(num-1);
}
}