map方法 : 调用一个函数处理数组中的每一个元素,将生成的结果组成一个新的数组,并返回;
接收三个参数:分别是 每一项,下标,原数组 , map((item,index,arr)=>item)
let array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
// [1,8,18,32]
filter方法 :把传入的函数依次作用于每个元素,然后根据返回值是
true
还是false
决定保留还是丢弃该元素;接收三个参数:分别是 每一项,下标,原数组 , map((item,index,arr)=>item)
let arr = ['A', '', 'B', null, undefined, 'C', ' '];
let r = arr.filter((s)=> s&&s.trim()); // 注意:IE9以下的版本没有trim()方法
// ['A', 'B', 'C']
//扩展:trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等,不会改变原始字符串,不适用于 null, undefined, Number 类型。
some方法 :用于检测数组中的元素是否满足指定条件(函数提供),会依次执行数组的每个元素,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测,如果没有满足条件的元素,则返回false;
注意: some() 不会对空数组进行检测,some() 不会改变原始数组。
接收三个参数:分别是 每一项,下标,原数组 , map((item,index,arr)=>item)
let ages = [4, 12, 16, 20];
let r = ages.some(item => item > 12)
//true
reduce方法:接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值;
注意: reduce() 对于空数组是不会执行回调函数的。
接收三个参数:分别是 初始值 ,每一项,下标,原数组 , map((item,index,arr)=>item)
let arr = [1, 2, 3, 4];
let sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
},0) //注意这里设置了初始值
console.log(arr, sum);
// 0 1 0
// 1 2 1
// 3 3 2
// 6 4 3
// [1, 2, 3, 4] 10
split 方法 :字符串转数组;// str.split(分隔符,留下的个数);
join方法:用指定符号把数组元素连接起来,返回连接好的字符串;
let str = '1234567'
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6", "7"]
let str1 = '1,2,3,4,5,6,7'
console.log(str1.split(',')) // ["1", "2", "3", "4", "5", "6", "7"]
let arr=[1,2,3,4]
arr.join(',') // "1,2,3,4"
arr.join('-') // "1-2-3-4"
includes() 方法 : 用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false;
接受两个参数:includes(item,index) 分别是:1 必须,需要查找的元素值 ; 2 可选,从该索引处开始查找 searchElement。默认为 0。
indexOf方法:可返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到匹配的字符串则返回 -1;
注意: indexOf() 方法区分大小写。
接受两个参数 : indexOf(searchvalue,start);分别是:1 必需。规定需检索的字符串值。2 可选的整数参数。规定在字符串中开始检索的位置。如省略该参数,则将从字符串的首字符开始检索。
search() 方法 : 搜索特定值的字符串,并返回匹配的置;indexOf() 与 search(),是相等的 , 区别在于 search() 方法无法设置第二个开始位置参数,indexOf() 方法无法设置更强大的搜索值(正则表达式);
接受一个参数:search(searchvalue) ;1 规定需检索的字符串值或正则
let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); // true
site.includes('baidu'); // false
let str = "Hello world, welcome to the universe.";
let n = str.indexOf("welcome"); // 13
var str = "of China.";
var pos = str.search(/f/); // 1
slice(start, end) 方法:提取字符串的某个部分并在新字符串中返回被提取的部分,该方法设置两个参数:起始索引(开始位置)包含,终止索引(结束位置)不包含;
substring(start, end) 方法 : 类似于 slice(),不同之处在于 substring() 无法接受负的索引
substr(start, length) 方法 :substr() 类似于 slice(),不同之处在于第二个参数规定被提取部分的长度
replace() 方法 : 用另一个值替换在字符串中指定的值, 区分大小写, 参数可接受正则
split('以什么分割',length) // 字符串分割
substr (下标,length) // 字符串截取 包含参数一的标substring (下标,下标) // 字符串截取 包含参数一的下标 ,不包含参数二的下标
slice (下标,下标) // 数组截取 包含参数一的下标 ,不包含参数二的下标
splice(下标,length,插入的元素,元素,......) // 数组截取 包含下标
var str = "Apple, Banana, Mango";
var res = str.slice(7,13); // Banana
//-----------------------------------------
var str = "Apple, Banana, Mango";
var res = str.substring(7,13); // Banana
//-----------------------------------------
var str = "Apple, Banana, Mango";
var res = str.substr(7,6); // Banana
//----------------------------------------
var str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School"); // Please visit Microsoft and W3School!
toUpperCase() :把字符串转换为大写;
toLowerCase() : 把字符串转换为小写;
concat() 方法 : 可用于代替加运算符合并字符串 , 也可用户合并数组对象 ;
Object.assign(
target, ...sources):
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
var text1 = "Hello World!";
var text2 = text1.toUpperCase(); // HELLO WORLD!
//------------------------------------------
var text1 = "Hello World!";
var text2 = text1.toLowerCase(); // hello world!
//-----------------------------------------
var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2); // Hello World
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = [].concat(o1,o2,o3); // [{ a: 1 },{ b: 2 },{ c: 3 }]
//-------------------------------------------
var o1 = { a: 1 };
var o2 = { b: 2 };
var o3 = { c: 3 };
var obj = Object.assign(o1, o2, o3); // { a:1, b:2, c:3 }
JavaScript Math 对象 :
Math.floor(5.123) // 5
Math.ceil(5.123) // 6
Math.round(5.51) // 6
Math.random() // 随机数 0.4035088672382927