不改变原数组
-
concat() 连接两个或多个数组,并将新的数组返回,不改变原数组,返回新的数组
-
join() 把数组中所有元素放入一个字符串,将数组转换为字符串,不改变原数组,返回字符串
-
slice() 从已有的数组中返回选定的元素,提取部分元素,放到新数组中,参数解释:1:截取开始的位置的索引,包含开始索引;2:截取结束的位置的索引,不包含结束索引。不改变原数组,返回一个新数组
-
toString() 把数组转为字符串,不改变原数组,返回数组的字符串形式
-
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
-
方法按照原始数组元素顺序依次处理元素。
-
map() 不会对空数组进行检测。
-
map() 不会改变原始数组
-
改变原数组
-
pop() 删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined,改变原数组,返回被删除的元素
-
push() 向数组末尾添加一个或多个元素,改变原数组,返回新数组的长度
-
reverse() 颠倒数组中元素的顺序,改变原数组,返回该数组
-
shift() 把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined,改变原数组,返回第一个元素的值
-
sort() 对数组元素进行排序,改变原数组,返回该数组
-
splice() 从数组中添加/删除项目,改变原数组,返回被删除的元素
-
unshift() 向数组的开头添加一个或多个元素,改变原数组,返回新数组的长度
循环数组
-
forEach() 浏览器会在回调函数中传递三个参数
第一个参数就是当前正在遍历的元素
第二个参数就是当前正在遍历的元素的索引
第三个参数就是正在遍历的数组
var arr=['a','b','c']
arr.forEach(function(item,index){
console.log(item); //a b c
console.log(index); //0 1 2
});
JSON.stringify()和JSON.parse()
-
JSON.stringify() 从一个对象中解析出字符串
var data={name:'goatling'}
JSON.stringify(data)
-
结果是: '{"name":"goatling"}'
-
JSON.parse() 从一个字符串中解析处JSON对象
//定义一个字符串 var data='{"name":"goatling"}' //解析对象 JSON.parse(data)
结果是: name:"goatling"
数组转字符串的方法
-
join
var a, b
a = new Array(0,1,2,3,4)
b = a.join("-"); //"0-1-2-3-4"
-
toString
var a = [1,2,3]
var b = a.toString()
console.log(a) // [1,2,3]
console.log(b) // "1,2,3"
字符串转数组的方法
-
split
var s = "abc,abcd,aaa"
ss = s.split(",") // 在每个逗号(,)处进行分解。
多维数组转字符串的方法
-
join、split交替用
var a = [1,[1,2]]
console.log(a.join(",").split(",").join("-")); // 1-1-2
indexOf 和 lastIndexOf的区别
-
indexOf是从左往右查,lastIndexOf是从右往左查
-
注意:两者虽然查询顺序不一样但是下标都是从左往右数的
var a = [1, 2, 3, 4, 5, 6, 7, 7, 8]
console.log(a.indexOf("7")) // 6
console.log(a.lastIndexOf("7")) // 7
数组去重
let arr = [1,2,3,4,3,4];
// ...是扩展运算符,取出可遍历属性拷贝到当前对象;
// Set() 类数组,该类型不会有重复的数据,用来做数组去重
let arr2 = [...new Set(arr)];
// Array.from方法可以将 Set 结构转为数组。
let newArr = Array.from(arr2);
console.log(newArr)
交换两个变量的值
let [x,y] = [1,2];
[y,x] = [x,y];
console.log(y);
获取字符串中某个字符
let str= "You Are MyBaby";
console.log(str[4]);
数组合并
let one = [1,43,67,8];
let two = [2,34,634,5];
let three = [2.34,5,546,2];
// es5合并方法
let oo = one.concat(two, three);
// es6合并方法
let pp = [...one, ...two, ...three];
console.log(oo, pp);
字符串翻转
let strReverse = 'I Love You'
// es5
let strFive = strReverse.split('').reverse().join()
// es6
let strSix = [...strReverse].reverse().join()
console.log(strFive,strSix)
过滤
let aFilter = [1.23,34,,5,6,'e'].filter(x => true)
console.log(aFilter)