数组相关
// concat() 连接两个或更多的数组,并返回结果。
// copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。
// entries() 返回数组的可迭代对象。
// every() 检测数值元素的每个元素是否都符合条件。
// fill() 使用一个固定值来填充数组。
// filter() 检测数值元素,并返回符合条件所有元素的数组。
// find() 返回符合传入测试(函数)条件的数组元素。
// findIndex() 返回符合传入测试(函数)条件的数组元素索引。
// forEach() 数组每个元素都执行一次回调函数。
// from() 通过给定的对象中创建一个数组。
// includes() 判断一个数组是否包含一个指定的值。
// indexOf() 搜索数组中的元素,并返回它所在的位置。
// isArray() 判断对象是否为数组。
// join() 把数组的所有元素放入一个字符串。
// keys() 返回数组的可迭代对象,包含原始数组的键(key)。
// lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。
// map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
// pop() 删除数组的最后一个元素并返回删除的元素。
// push() 向数组的末尾添加一个或更多元素,并返回新的长度。
// reduce() 将数组元素计算为一个值(从左到右)。
// reduceRight() 将数组元素计算为一个值(从右到左)。
// reverse() 反转数组的元素顺序。
// shift() 删除并返回数组的第一个元素。
// slice() 选取数组的的一部分,并返回一个新数组。
// some() 检测数组元素中是否有元素符合指定条件。
// sort() 对数组的元素进行排序。
// splice() 从数组中添加或删除元素。
// toString() 把数组转换为字符串,并返回结果。
// unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
// valueOf() 返回数组对象的原始值。
// concat() 连接两个或更多的数组,并返回结果。
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);//Cecilie,Lone,Emil,Tobias,Linus,Robin
// copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。
//array.copyWithin(target, start, end) target 必需。复制到指定目标索引位置。start 可选。元素复制的起始位置。end 可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.copyWithin(2, 0);//Banana,Orange,Banana,Orange
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2, 0, 2);//Banana,Orange,Banana,Orange,Kiwi,Papaya
// entries() 返回数组的可迭代对象。该对象包含数组的键值对 (key/value)。迭代对象中数组的索引值作为 key, 数组元素作为 value。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x=fruits.entries();//数组本身无变化
// [0, "Banana"]
// [1, "Orange"]
// [2, "Apple"]
// [3, "Mango"]
// every() 检测数值元素的每个元素是否都符合条件。检测所有元素,有一个不符合返回false
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
var x=ages.every(checkAdult)//false
// fill() 使用一个固定值来填充数组。
//array.fill(value, start, end) value 必需。填充的值。start 可选。开始填充位置。end 可选。停止填充位置 (默认为 array.length)
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob");//Runoob,Runoob,Runoob,Runoob
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob", 2, 4);//Banana,Orange,Runoob,Runoob
// filter() 检测数值元素,并返回符合条件所有元素的数组。
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
var x=ages.filter(checkAdult)//32,33,40
// find() 返回通过测试(函数内判断)的数组的第一个元素的值.如果没有符合条件的元素返回 undefined
// findIndex() 返回符合传入测试(函数)条件的数组元素索引。
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
var x= ages.find(checkAdult);//18 //获取数组中年龄大于 18 的第一个元素
var x=ages.findIndex(checkAdult);//2
// forEach() 数组每个元素都执行一次回调函数。
var numbers = [4, 9, 16, 25];
function myFunction(item, index) {
return "index[" + index + "]: " + item;
}
numbers.forEach(myFunction) //0:4 1:9 2:16 3:25
var sum=0;
function myFunction(item) {
sum += item;
return sum;
}
var x=numbers.forEach(myFunction)//125
// from() 通过给定的对象中创建一个数组。
var myArr = Array.from("RUNOOB");//["R","U","N","o","o","B"]
//Array.from相关方法
const LEN = 3;
const arr1 = new Array(LEN).fill(false);
console.log(arr1)
//Array.from
let arr = [1,2,3,4,5,6,7,8,9]
let set = new Set(arr)
console.log(Array.from(set, item => item + 1)) // [2,3,4,5,6,7,8,9,10]
let str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
const myMap = new Map().set(true, 7)
console.log(myMap); //Map(1) {true => 7}
console.log([...myMap]); //[true ,7]
let dp=Array.from(new Array(5),()=>new Array(4).fill(0))//初始化一个5*4的二维数组
console.log(dp);
// includes() 判断一个数组是否包含一个指定的值。
//arr.includes(searchElement, fromIndex) searchElement 必须。需要查找的元素值。 fromIndex 可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); // true
site.includes('baidu'); // false
var arr = ['a', 'b', 'c'];
arr.includes('c', 3); //false
arr.includes('c', 100); // false //如果fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索:
arr.includes('a', -100); // true //如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。
// indexOf() 搜索数组中的元素,并返回它所在的位置。
// lastIndexOf() 搜索数组中的元素,并返回它最后出现的位置。
//array.indexOf(item,start) item 必须。查找的元素。 start 可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");//2
var a = fruits.lastIndexOf("Apple");//2
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);//6
// isArray() 判断对象是否为数组。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = Array.isArray(fruits);//true
// join() 把数组的所有元素放入一个字符串。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();//Banana,Orange,Apple,Mango
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");//Banana and Orange and Apple and Mango
// keys() 返回数组的可迭代对象,包含原始数组的键(key)。 如果对象是数组返回 true,否则返回 false。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x=fruits.keys();//0 1 2
//map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
//map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
//map() 方法按照原始数组元素顺序依次处理元素。
// 注意: map() 不会对空数组进行检测。
// 注意: map() 不会改变原始数组。
var numbers = [4, 9, 16, 25];
function myFunction() {
var x = numbers.map(Math.sqrt);//2,3,4,5
}
//1、数字数组转化为字符串数组
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); //结果: ['1', '2', '3', '4', '5', '6', '7', '8', '9']
//2、字符串数组转化为数字数组
var a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
a.map(Number); //结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
// pop() 删除数组的最后一个元素并返回删除的元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();//Banana,Orange,Apple
// push() 向数组的末尾添加一个或更多元素,并返回新的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")//Banana,Orange,Apple,Mango,Kiwi
// reduce() 将数组元素计算为一个值(从左到右)。
//arr.reduce(function(prev,cur,index,arr){...}, init);
// arr 表示原数组;
// prev 表示上一次调用回调时的返回值,或者初始值 init;
// cur 表示当前正在处理的数组元素;
// index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
// init 表示初始值。
//求数组项之和
var sum = arr.reduce(function (prev, cur) {return prev + cur;},0);
//求数组项最大值
var max = arr.reduce(function (prev, cur) {return Math.max(prev,cur);});
//数组去重
var newArr = arr.reduce(function (prev, cur) { prev.indexOf(cur) === -1 && prev.push(cur); return prev;},[]);
// reverse() 反转数组的元素顺序。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();//fruits 结果输出:Mango,Apple,Orange,Banana
// shift() 删除并返回数组的第一个元素。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()//fruits 结果输出:Orange,Apple,Mango
// slice() 选取数组的的一部分,并返回一个新数组。
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3);//Orange,Lemon
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1);//Lemon,Apple
// sort() 对数组的元素进行排序。数组在原数组上进行排序
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();//fruits 输出结果:Apple,Banana,Mango,Orange
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});//fruits输出结果: 1,5,10,25,40,100
// splice() 从数组中添加或删除元素。这种方法会改变原始数组。返回值为删除的元素
// /array.splice(index,howmany,item1,.....,itemX) index为从何处添加/删除元素,howmany为删除多少元素,可以为0,未规定则删除到末尾
//注意,for循环中使用splice()进行删除的时候,删除之后需要i--。因为如果有两个连着的元素都需要删除,会只删除第一个,第二个会被跳过。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");//fruits 输出结果 Banana,Orange,Lemon,Kiwi,Apple,Mango
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);//fruits 输出结果:Banana,Orange
// toString() 把数组转换为字符串,并返回结果。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();//fruits将输出:Banana,Orange,Apple,Mango
// unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");//fruits 将输出:Lemon,Pineapple,Banana,Orange,Apple,Mango
字符串相关
// charAt() 返回在指定位置的字符。
// charCodeAt() 返回在指定的位置的字符的 Unicode 编码。
// concat() 连接两个或更多字符串,并返回新的字符串。
// fromCharCode() 将 Unicode 编码转为字符。
// indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。
// includes() 查找字符串中是否包含指定的子字符串。
// lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
// match() 查找找到一个或多个正则表达式的匹配。
// repeat() 复制字符串指定次数,并将它们连接在一起返回。
// replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
// search() 查找与正则表达式相匹配的值。
// slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
// split() 把字符串分割为字符串数组。
// startsWith() 查看字符串是否以指定的子字符串开头。
// substr() 从起始索引号提取字符串中指定数目的字符。
// substring() 提取字符串中两个指定的索引号之间的字符。
// toLowerCase() 把字符串转换为小写。
// toUpperCase() 把字符串转换为大写。
// trim() 去除字符串两边的空白
// toLocaleLowerCase() 根据本地主机的语言环境把字符串转换为小写。
// toLocaleUpperCase() 根据本地主机的语言环境把字符串转换为大写。
// valueOf() 返回某个字符串对象的原始值。
// toString() 返回一个字符串。
//charAt() 返回在指定位置的字符。
var str = "HELLO WORLD";
var n = str.charAt(2) //L
// concat() 连接两个或更多字符串,并返回新的字符串。
var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2); //Hello world!
// indexOf() 返回某个指定的字符串值在字符串中首次出现的位置。
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");//13
// includes() 查找字符串中是否包含指定的子字符串。
var str = "Hello world, welcome to the Runoob。";
var n = str.includes("world");//true
// lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
var str="I am from runoob,welcome to runoob site.";
var n=str.lastIndexOf("runoob");//28
// match() 查找找到一个或多个正则表达式的匹配。返回所有匹配的值
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);//ain,ain,ain
// repeat() 复制字符串指定次数,并将它们连接在一起返回。
var str = "Runoob";
str.repeat(2);//RunoobRunoob
// replace() 在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
var str="Visit Microsoft! Visit Microsoft!";
var n=str.replace("Microsoft","Runoob");//Visit Runoob!Visit Microsoft!
// search() 查找与正则表达式相匹配的值。返回首个匹配字符串的位置
var str="Visit Runoob!";
var n=str.search("Runoob");//6
// slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。
var str="Hello world!";
var n=str.slice(1,5);//返回字符串的第1个字符到第4个字符//ello
var n=str.slice(0,1);//提取字符串的第一个字符 //H
var n=str.slice(-1);//提取字符串的最后一个字符 //!
var n=str.slice(3);//从字符串的第3个位置提取字符串片段: //lo world!
// split() 把字符串分割为字符串数组。返回一个字符串数组
// string.split(separator,limit) separator为字符串对象,limit为可选参数,指定返回字符串数组的最大长度
var str="How are you doing today?";
var n=str.split(" ");//How,are,you,doing,today?
var n=str.split(" ",3);//How,are,you
var n=str.split("");//分割每个字符 //H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
// startsWith() 查看字符串是否以指定的子字符串开头。
// string.startsWith(searchvalue, start) searchvalue为要查找的字符串,start为可选参数,查询的起始位置
var str = "Hello world, welcome to the Runoob.";
var n = str.startsWith("Hello");//true
var n = str.startsWith("world", 6);//true
// substr() 从起始索引号提取字符串中指定数目的字符。不指定长度,则从起始位置提取到最后
var str="Hello world!";
var n=str.substr(2,3)//llo
var n=str.substr(2)//llo world!
// substring() 提取字符串中两个指定的索引号之间的字符。返回的子串包括 开始 处的字符,但不包括 结束 处的字符。
var str="Hello world!";
document.write(str.substring(3)+"<br>");//lo world!
document.write(str.substring(3,7));//lo w
// toLowerCase() 把字符串转换为小写。
// toUpperCase() 把字符串转换为大写。
var str="Runoob";
document.write(str.toLowerCase());//runoob
document.write(txt.toUpperCase());//RUNOOB
// trim() 去除字符串两边的空白
var str = " Runoob ";
alert(str.trim());//Runoob
// valueOf() 返回某个字符串对象的原始值。
var str="Hello world!";
document.write(str.valueOf());//Hello world!
// toString() 返回一个字符串。
var str = "Runoob";
var res = str.toString();//Runoob
var str = [1,2,3,4];
var res = str.toString();//1,2,3,4 //字符串
数学运算相关
// abs(x) 返回 x 的绝对值。
Math.abs(-7.25);//7.25
var a=Math.abs(7.25);//7.25
var b=Math.abs(-7.25);//7.25
var c=Math.abs(null);//0
var d=Math.abs("Hello");//NaN
var e=Math.abs(2+3);//5
// ceil(x) 对数进行上舍入。
Math.ceil(1.4)//2
var a=Math.ceil(0.60);//1
var b=Math.ceil(0.40);//1
var c=Math.ceil(5);//5
var d=Math.ceil(5.1);//6
var e=Math.ceil(-5.1);//-5
var f=Math.ceil(-5.9);//-5
// floor(x) 对 x 进行下舍入。
var a=Math.floor(0.60);//0
var b=Math.floor(0.40);//0
var c=Math.floor(5);//5
var d=Math.floor(5.1);//5
var e=Math.floor(-5.1);//-6
var f=Math.floor(-5.9);//-6
// exp(x) 返回 Ex 的指数。
var a=Math.exp(-1);//0.36787944117144233
var b=Math.exp(5);//148.4131591025766
var c=Math.exp(10);//22026.465794806718
// log(x) 返回数的自然对数(底为e)。
var a=Math.log(2.7183);//1.0000066849139877
var b=Math.log(2);//0.6931471805599453
var c=Math.log(1);//0
var d=Math.log(0);//-Infinity
var e=Math.log(-1);//NaN
// max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值。
// min(x,y,z,...,n) 返回 x,y,z,...,n中的最低值。
var a=Math.max(5,10);//10
var b=Math.max(0,150,30,20,38);//150
var c=Math.max(-5,10);//10
var d=Math.max(-5,-10);//-5
var e=Math.max(1.5,2.5);//2.5
// pow(x,y) 返回 x 的 y 次幂。
// random() 返回 0 ~ 1 之间的随机数。
Math.random();//0.11081733578243935
Math.floor((Math.random()*10)+1);//在本例中,我们将取得介于 1 到 10 之间的一个随机数:
Math.floor((Math.random()*100)+1);//在本例中,我们将取得介于 1 到 100 之间的一个随机数:
function getRndInteger(min, max) {//以下函数返回 min(包含)~ max(不包含)之间的数字:
return Math.floor(Math.random() * (max - min) ) + min;
}
function getRndInteger(min, max) {//以下函数返回 min(包含)~ max(包含)之间的数字:
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
// round(x) 四舍五入。
// sqrt(x) 返回数的平方根。
var a=Math.sqrt(0);//0
var b=Math.sqrt(1);//1
var c=Math.sqrt(9);//3
var d=Math.sqrt(64);//8
var e=Math.sqrt(-9);//NaN
//parseInt(x) 返回整数