//All sum up:
//没有副作用的方法:
// join(),concat(),slice()
//有副作用的方法:
// unshift()-shift() 、push()-pop()、reverse()
var arr=[‘this ‘,’is ‘,’jack ‘,’you ‘,’ass!’];
var arr2=[‘that’,’is’,’so’,’bad’];
//数组方法
//数组到字符串
console.log(arr.join(”));//this is jack you ass!
console.log(arr.join(‘-‘));//this -is -jack -you -ass!
console.log(arr.join(‘ ‘));//this is jack you ass!
console.log(typeof arr.join(”))//string
console.log(arr);//原数组没变
//sum up:join()方法实现数组元素的拼接,传入作为拼接符的字符串
//sum up:join()方法没有返回新的字符串,对原数组没有有副作用
//数组到数组
//数组融合
console.log(arr.concat(arr2));//[“this “, “is “, “jack “, “you “, “ass!”, “that”, “is”, “so”, “bad”]
console.log(arr,arr2);//[“this “, “is “, “jack “, “you “, “ass!”] [“that”, “is”, “so”, “bad”]
//sum up:concat()方法实现数组和数组的融合,返回新数组
//sum up:concat()方法对原数组没有副作用
//数组翻转
console.log(arr.reverse());//[“ass!”, “you “, “jack “, “is “, “this “]
console.log(arr);//[“ass!”, “you “, “jack “, “is “, “this “]
//sum up:reverse()方法实现数组内元素翻转
//sum up:原数组被改变,该方法有副作用
arr.reverse();//恢复
//数组切片
console.log(arr.slice(2,4));//[“jack “, “you “]
console.log(arr.slice(2,1));//
console.log(arr);//[“this “, “is “, “jack “, “you “, “ass!”]
//sum up:slice()方法对数组任意位置进行切片,传入切片开始得索引和(索引+长度)两个数字
// :不传入(索引+长度)将切掉后面的所有元素,传入负数的长度不会往前面切
// :没有副作用
//数组到数组元素
//头部操作
console.log(arr.unshift(‘test’));//6
console.log(arr);//[“test”, “this “, “is “, “jack “, “you “, “ass!”]
console.log(arr.shift());//test
console.log(arr.shift(‘test’));//this
console.log(arr);//[“this “, “is “, “jack “, “you “, “ass!”]
//sum up: unshift()对数组头部推入一个元素,返回推入后的数组长度
// shift()不接受参数,对数组头部推出一个元素,返回被推出的数组元素,
// 两个方法互逆,都改变原数组
//尾部操作
console.log(arr.push(‘test’));//6
console.log(arr);//[“this “, “is “, “jack “, “you “, “ass!”, “test”]
console.log(arr.pop());//test
console.log(arr.pop(‘test’));//ass!
console.log(arr);//[“this “, “is “, “jack “, “you “]
//sum up :push()对数组尾部推入一个元素,返回推入后的数组长度
// :pop()不接受参数,推出数组尾部一个元素,返回被推出的元素
// :两者互逆,都改变原数组