数组合并
let arr1 = [1, 2, 3, 4, 5];
let arr2 = [6, 7, 8, 9, 10];
1、concat
arr1 = arr1.concat(arr2);
2、Array.propotype.push.apply
arr1 = Array.propotype.push.array(arr1, arr2);
3、es6合并
arr1 = [...arr1, ...arr2];
4、原始for循环
arr2.map((item) => {
arr1.push(item);
});
数组排序
let stringArray = [2, 3, 1, 45, 65, 34, 46, 45, 34]
let objectArray = [{name: 'bob', age: 12},{name: 'mary', age: 23},{name: 'lily', age: 11},{name: 'jack', age: 56},]
1、sort
stringArray = stringArray.sort((a, b) => {return a - b;});
objectArray = objectArray.sort((a, b) => {return a.value - b.value;});
同理如下:
function compare (x, y) {
if (x < y) {
returen 1;
} else if (x > y) {
return -1;
} else {
return 0;
}
}
stringArray = stringArray.sort(stringArray);
一般较多使用为sort排序,对于学习js,最好了解以下链接中的10种排序算法逻辑理解;
https://juejin.im/post/57dcd394a22b9d00610c5ec8
数组去重方案
let repetArray = [2, 4, 23, 345,23, 4, 54, 56, 34, 45, 54];
1、es6
repetArray = Array.form(new Set(repetArray));
2、object的key值唯一性
let newObject = {};
repetArray.map((item) => {
newObject = Object.assign({}, newObject, {[item] : ''});
})
repetArray = Object.keys(newObject);
3、for 循环遍历
let newArray = [];
repetArray.map((item) => {
if (newArray.includes(item)) {
return;
}
newArray.push(item);
})
4、ramdajs,lodashjs等库中方法简单去重
R.uniq([1, 1, 2, 1]); //=> [1, 2]
R.uniq([1, '1']); //=> [1, '1']
R.uniq([[42], [42]]); //=> [[42]]
数组增删操作
1:push 从数组最后插入数据;
2:pop 从数组最后删除数据;
3:unshift 从数组开始处插入数据
4:shift 从数组开始处删除数据
数组插入操作
let arr1=[34, 345, 34, 23];
splice,slice的区别在于splice会将原数组进行变更;而slice是重新生成1个数组;
splice (index, num, conatin)
let newArray = [];
1:删除
newArray = arr1.splice(2, 1); //删除第3位的1条数据
// arr1: [34,345, 23] newArray : [34]
newArray = arr1.slice(2, 1); //删除第3位的1条数据
// arr1: 34, 345, 34, 23] newArray : [34,345, 23]
2:替换
newArray = arr1.splice(2, 1,‘45’); //将45替换第3位的1条数据
数组,字符串转换
// array ⇒ string
[1,2,3,4].join(','); // "1,2,3,4"
// string ⇒ array
("1,2,3,4").split(','); // ["1", "2", "3", "4"]