数组
数组作为一组数据的集合,其中每个数据被称为元素,在数组中可以存放任意类型元素
// 1.push 将一个或者多个元素添加到数组末尾
var arr = [1, 2, 3];
arr.push(4);
console.log(arr);
声明数组
var arr = new Array();
var newArray = Array.apply();//使用Array.apply此种方式可以声明不为空数组
// arguments 可以获取函数中的所有参数 且形成一个伪数组
// 如何转为真数组
// 使用Array.from
// 数组拼接
var arr = [1,2];
var arr1 = [1,4];
console.log(arr.consat(arr1))
数组去重的几种方案
双循环去重
function unique(arr){
if(!Array.isArray(arr)){
console.log('type error')
return
}
let res = [arr[0]]
for (let i = 1;i < arr.length;i++){
let flag = true;
for(let j =0;i<res.length;j++){
if(arr[i]==res[j]){
flag = false;
break;
}
}
if (flag){
res.push(arr[i])
}
}
return res
}
// 先定义一个包含原始数组第一个元素的数组,遍历数组,将数组里的每个元素和新数组的进行比对
//如果 不重复:加入到新数组 返回新数组
\
indexOf去重
function unique(arr)
{
if(!Array.isArray(arr)){
console.log('type error')
return
}
let res=[]
for (let i = 0;i<arr.length;i++){
if(res.indexOf(arr[i]) == -1){
res.push(arr[i])
}
}
return res
}
// 先定义一个空数组 使用indexOf对原来的数组遍历判断
//if 元素不在res中 push进res 将res返回
Array.from set 去重
Array.from set 去重
function unique(arr){
if(!Array.isArray(arr)){
console.log('type error')
return
}
return Array.from(new Set(arr))
}
数组排序算法
将一个乱序数组变成有序数组
冒泡排序
将相邻的两个元素进行两两比较,前一个数比后一个数大,就交换位置
var n = arr.length
for(var i=0;i<n-1;i++){
for(var j=0;j<n-1-i;j++){
if(arr[j]>arr[j+1])
{
var t = arr[j]
arr[j] = arr[j+1]
arr[j+1] = t
}
}
}
//对n个元素的数组进行排序,外层循环n-1轮冒泡排序,内层循环n-1-i轮
选择排序
在未排序的数组中找到最小或者最大的元素,存放在未排序数组的起始位置,然后继续找,继续排
var n =arr.length
for(var i=0;i<n-1;i++){
var minindex = i;//将i赋给最小下标
for(var j=i+1;j<n;j++){
if(arr[j]<arr[minindex]){
minindex=j;//判断下标为j的对比下标i小,小 最小下标就为j
}
}
var t = arr[i]
arr[i] = arr[minindex]
arr[minindex] = t
}