### 數組的常用方法:
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、訪問格式