### 数组的常用方法:
1、Array.length:数组长度
* * * * *
~~~
//返回或设置一个数组中的元素个数
//设置 length 属性的值来截断任何数组,长度为零时清空数组
var arr = new Array(3);
console.log(arr.length); //arr.length=3;
~~~
2、Array.isArray():数组判定
* * * * *
~~~
//用于确定传递的值是否是一个 Array
Array.isArray([]) => true;
Array.isArray({}) => false;
~~~
3、Array.concat():数组拼接
* * * * *
~~~
// 用于拼接多个数组,返回一个新数组,不改变原数组
var a = [1,2];
var b = [2,3];
var c = [4,5];
var d = a.concat(b,c);
console.log(a); // a=[1,2]
console.log(b); // b=[2,3]
console.log(c); // c=[4,5];
console.log(d); // d=[1,2,2,3,4,5]
~~~
4、Array.fill():让数组的每一项都替换成指定的值
* * * * *
~~~
//用一个固定值填充一个数组中从起始索引到终止索引内的全部元素
var arr = [1,2,3,4,5];
arr.fill(0);
console.log(arr); // arr=[0,0,0,0,0]
~~~
5、Array.filter():只会根据条件过滤简单的一维数组
* * * * *
~~~
//创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
var arr = [1,2,3,4,5,6,[7,8,9]];
var arr2 = arr.filter(function(item){
//返回数组arr中大于3的所有元素
return item>3;
})
console.log(arr); //arr=[1,2,3,4,5,6,[7,8,9]]
console.log(arr2); // arr2=[4,5,6]
~~~
6、Array.find():查找数组,返回第一个满足条件的值
* * * * *
~~~
//返回数组中满足提供的测试函数~第一个元素的值
var arr = [10,20,30];
var k = arr.find(function(item){
//返回数组arr中第一个大于15的元素的值
return item>15;
})
console.log(arr); // arr=[10,20,30]
console.log(k); // k=20
~~~
7、Array.findIndex():查找数组,返回第一个满足条件的值的下标
* * * * *
~~~
//返回数组中满足提供的测试函数~第一个元素的下标
var arr = [10,20,30];
var k = arr.findIndex(function(item){
//返回数组arr中第一个大于15的元素的下标
return item>15;
})
console.log(arr); // arr=[10,20,30]
console.log(k); // k=1
~~~
8、Array.forEach():循环遍历数组
* * * * *
~~~
//方法对数组的每个元素执行一次提供的函数
var arr = [1,2,3,4,5,6];
arr.forEach(function(item,index,array){
//item:数组中的每一项;index:数组中每一项的下标;array:原数组
console.log(item,index,array);
})
console.log(arr); //
~~~
9、Array.push():在数组末尾添加项,一次可以添加多个
* * * * *
~~~
var arr = [1,2,3];
arr.push([1,2,3]);
console.log(arr); // arr=[1,2,3,[1,2,3]]
var arr2 = [1,2,3];
arr2.push(4,"5");
console.log(arr2); // arr2=[1,2,3,4,"5"]
~~~
10、Array.pop():在数组末尾删除项,一次只能删除一个,返回被删除项的值
* * * * *
~~~
var arr = [1,2,3];
var a = arr.pop(); // a=3,返回被删除的3
arr.pop();
console.log(a); // a=3
console.log(arr); // arr=[1]
~~~
11、Array.shift():在数组最前面删除项,一次只能删除一个,返回被删除项的值
* * * * *
~~~
var arr = [1,2,3];
a = arr.shift(); // a=1,返回被删除的1
arr.shift();
console.log(a); // a=1
console.log(arr); // arr=[3]
~~~
12、Array.unshift():在数组最前面添加项,一次可以添加多个
* * * * *
~~~
var arr = [1,2,3];
arr.unshift([1,2,3]);
console.log(arr); // arr=[[1,2,3],1,2,3]
var arr2 = [1,2,3];
arr2.unshift(-1,"0");
console.log(arr2); // arr2=[-1,"0",1,2,3]
~~~
13、Array.indexOf():返回指定元素在数组中的下标,若不存在,则返回-1
* * * * *
~~~
var arr = [1,2,3,4,5,6];
var a = arr.indexOf(5);
var b = arr.indexOf(7);
console.log(a); // a=4
console.log(b); // b=-1
~~~
14、Array.slice() && Array.from();复制数组,不改变原数组
* * * * *
~~~
//slice()
var arr = [1,2,3];
var arr1 = arr.slice();
arr1[3] = 4;
console.log(arr); // arr=[1,2,3]
console.log(arr1); // arr1=[1,2,3,4]
//from()
var arr2 = Array.from(arr);
arr2[3] = 4;
console.log(arr); // arr=[1,2,3]
console.log(arr2); // arr2=[1,2,3,4]
//[...arr]
var arr3 = [...arr];
arr3[3] = 4;
console.log(arr); // arr=[1,2,3]
console.log(arr3); // arr3=[1,2,3,4]
~~~
15、在数组中查找最大值和最小值
* * * * *
~~~
//方法一:
var arr = [1,2,3,4];
var arr2 = Math.max.apply(null,arr); //最大值
var arr3 = Math.min.apply(null,arr); // 最小值
console.log(arr2); // arr2=4
console.log(arr3); // arr3=1
//方法二:
var arr4 =Math.max(...arr); // 最大值
var arr5 =Math.min(...arr); // 最小值
console.log(arr4); //arr4=4
console.log(arr5); // arr5=1
~~~
16、数组去重:
* * * * *
~~~
//思路一:new一个新数组,使用indexOf()函数验证
var arr = ['1','2','3','1','4','3','5'];
function change(arr){
var arr_n = [];
for(var i = 0; i < arr.length; i++){
if(arr_n.indexOf(arr[i]) < 0){
arr_n.push(arr[i]);
}
}
return arr_n;
}
console.log(change(arr)); //['1','2','3','4','5']
//思路二:
let log = console.log.bind(console);
let person = [
{id: 0, name: "小明"},
{id: 1, name: "小张"},
{id: 2, name: "小李"},
{id: 3, name: "小孙"},
{id: 1, name: "小周"},
{id: 2, name: "小陈"},
];
let obj = {};
person = person.reduce((cur,next) => {
obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
return cur;
},[]) //设置cur默认类型为数组,并且初始值为空的数组
log(person);
~~~
17、返回打乱的新数组
*****
```
var arr = [1,2,3,4,5,6,7,8,9,10];
console.log(shuffle(arr));
function shuffle(array) {
const length = array == null ? 0 : array.length//数组长度
if (!length) {//如果数组长度为0,返回空数组
return []
}
let index = -1//循环索引
const lastIndex = length - 1//数组的最后一个元素的索引
const result = array//复制一份原始数组作为结果数组
var result = $.extend(true, [], array);
/*
$.extend() 函数用于将一个或多个对象的内容合并到目标对象。
$.extend(true,{},a,b)
true:是否深度拷贝,不加为false,浅拷贝,加了深拷贝
{}:将合并结果保存到新对象,这样原对象将不会发生改变;如果是数组,则改为[]
a:第一个合并的对象
b:第二个合并的对象
* */
while (++index < length) {//循环数组长度次
const rand = index + Math.floor(Math.random() * (lastIndex - index + 1))
//生成随机索引,每一次的范围都比上一次少一个
const value = result[rand]//结果数组中对应随机索引的值先存下来,然后和result[index]互换位置
result[rand] = result[index]
result[index] = value
}
return result//返回打乱顺序后的新数组
}
```
- 我的烂笔头
- 1、常用功能方法整合
- 2、jQuery基本函数
- 3、在页面中添加图片
- 4、精度算法
- 5、图片懒加载
- 6、弹窗拖拽功能
- 7、弹幕功能
- 8、鼠标滚动事件
- 9、获取页面相关属性
- 10、弹窗的三种展现方式
- 11、轮播功能
- 12、获取唯一标识
- 13、CSS样式效果
- 14、任意两点的动态连线
- 15、全新接口功能
- 16、适配兼容
- 17、无刷新页面更改URL
- 18、定时器的那些事
- 19、关于iframe的常见问题
- 20、设置不同的时间
- 21、关于select-option
- 22、省市级联
- 23、省市级联数据
- 24、关于数据传输问题
- 25、问题分支
- 那些年我们一起走过的神坑
- 1、关于console的使用
- 2、关于数组
- 1、数组的赋值
- 2、数组的常用方法
- 3、关于移动端的bug
- 4、关于视频的bug
- 5、那些坑坑洼洼
- 6、关于字符串
- 1、字符串的常用方法
- 页面布局
- 1、背景固定的滚动页面
- 心得
- Node.js
- 1、安装环境
- ThinkPHP 5.1
- 1、访问格式