生活随笔
收集整理的這篇文章主要介紹了
数组整理随手笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄 數組 創建數組 數組的屬性 數組的方法 數組排序的方法 數組迭代(數組遍歷) 判斷是不是數組 注意點 補充
數組
數組類型是 object (typeof [] == object)
創建數組
var arr = new Array();
var arr
= new Array ( 100 ) ;
var arr
= new Array ( 100 , 100 ) ;
var arr = [];
數組的屬性
arr.length
數組的方法
arr.forEach( function ); // 數組有多少,就執行多少遍
arr.sort() // 對數組進行排序
arr.push() // 數組進行加項,
arr.toString() // 把數組改成數組值
const arr
= [ "red" , "green" , "blue" ] ;
console
. log ( arr
. toString ( ) ) ;
arr.join( - ); // 將數組值變成一個連起來的字符串
const arr
= [ "red" , "green" , "blue" ] ;
arr
. join ( "*" ) ;
arr.pop(); // 刪除數組最后一個數據,返回最后一個數據。
arr.push(‘red’); // 在數組最后加入一個數據,返回加入后數組長度length
result
= [ obj
] . concat ( showGoodsList
) ;
arr.shift(); // shift() 方法會刪除首個數組元素,并把所有其他元素“位移”到更低的索引。返回刪除的數據
arr.unshift(‘red’); // 在數組最前面加入數據,返回新數組長度length
arr.splice(beginIndex, number, “Lemon”,“Kiwi”);
arr
. splice ( 2 , 1 , "KIWI" ) ;
第一個參數(
2 )定義了應添加新元素的位置(拼接)。
第二個參數(
0 )定義應刪除多少元素。其余參數(“Lemon”,“Kiwi”)定義要添加的新元素。
splice ( ) 方法返回一個包含已刪除項的數組:
arr1.concat(arr2) // 兩個數組進行拼接
var myGirls
= [ "Cecilie" , "Lone" ] ;
var myBoys
= [ "Emil" , "Tobias" , "Linus" ] ;
var myChildren
= myGirls
. concat ( myBoys
) ;
arr.slice(1); // 把一個數組截取返回一個截取到的新數組,不會改變原來的數組
arr
. slice ( 1 ) ;
arr
. slice ( 1 , 3 ) ;
數組排序的方法
arr.sort() // 對數組按照字母的unicode編碼 進行順序排序,只看首字符。所以這樣會導致 20 大于 100
所以我們用比值法解決這個數字排序問題
const arr
= [ 1 , 2 , 3 ] ;
arr
. sort ( ( a , b ) => { return a
- b
;
} ) ;
var obj
= [ { name
: "xiaowang" , age
: 18 } , { name
: "xiaochen" , age
: 19 } , { name
: "xiaolin" , age
: 20 }
] ; function compare ( type ) { return function ( a, b ) { var value1
= a
[ type
] ; var value2
= b
[ type
] ; return value1
- value2
; }
} arr
. sort ( compare ( "name" ) ) ;
V8 引擎 sort 函數只給出了兩種排序 InsertionSort 和 QuickSort,數量小于
10 的數組使用 InsertionSort,比
10 大的數組則使用 QuickSort。
arr.reverse(); // 顛倒數組的排序
數組迭代(數組遍歷)
arr.forEach(function (value, index, arr){ }); // 三個參數, value,index, arr本身
arr.map(function (value, index, arr) {}); // 通過對每個數組元素執行函數來創建新數組。返回一個新數組,不會改變原來的數組。
const arr
= [ 1 , 2 , 3 ] ;
arr
= arr
. map ( function ( value ) { return value
* 2 ;
} ) ;
arr.filter(function (value ,index , arr){ }); // 一般用來篩選,產生一個新數組。
const arr
= [ 1 , 1 , 2 , 3 , 98 , 0 , 13 , 4 ] ;
arr
= arr
. filter ( function ( value ) { return value
> 10 ;
} ) ;
arr.reduce(function (total , value, index, arr){ }, InitialValue); // 4個參數,第一參數是數組的第一項,這個函數,只遍歷arr.length - 1次,一般用來算一個數組的數據的總和。從左(開頭)開始累加
const arr
= [ 10 , 9 , 8 , 31 , 3 , 57 , 0 , 1 , 3 , 87 , 4 ] ;
arr
. reduce ( function ( total , value, index, arr ) { total
= total
+ value
; return total
;
} ) ;
arr.reduceRight(function (total, value , index, arr){ },initialValue); // 與reduce的區別就是,他是從右邊(末尾)開始累加的。
arr.every(function ( value , index, arr){}); // 一般用于測試一個數組是否都滿足條件。一個不符合就返回false
arr
. every ( function ( value ) { return value
> 18 ;
} ) ;
arr.some(function (value, index, arr) {}); // 一般用于檢測數組是否有一個符合條件。,有一個就足夠了
arr
. some ( function ( value ) { return value
> 18 ;
} )
indexOf(searchvalue,fromindex) fromindex 可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。
arr.lastIndexOf(); // 與indexOf的區別就是,它是從最后開始查找的。
arr.find(); // 查找第一個滿足條件的值,返回這個值。
arr
. find ( function ( value , index, arr ) { return value
> 18 ;
} ) ;
arr.findIndex(function (value, index, arr){}); // 查找第一個滿足條件的值的索引。
判斷是不是數組
Array.isArray( arr ); // 判斷是不是數組,ECMAScript 5 定義的新方法 老的瀏覽器不能用。需要自己包裝一個。
function isArray ( x ) { return x
. constructor
. toString ( ) . indexOf ( "Array" ) > - 1 ;
}
var fruits
= [ "Banana" , "Orange" , "Apple" , "Mango" ] ;
fruits
instanceof Array
注意點
具有命名索引的數組被稱為關聯數組(或散列)。
js不支持命名索引
var person
= [ ] ;
person
[ "firstName" ] = "Bill" ;
person
[ "lastName" ] = "Gates" ;
person
[ "age" ] = 62 ;
var x
= person
. length
;
var y
= person
[ 0 ] ;
補充
instanceof
instanceof 運算符用于檢測構造函數的 prototype 屬性是否出現在某個實例對象的原型鏈上。
function Car ( make, model, year ) { this . make
= make
; this . model
= model
; this . year
= year
;
}
const auto
= new Car ( 'Honda' , 'Accord' , 1998 ) ; console
. log ( auto
instanceof Car ) ;
console
. log ( auto
instanceof Object ) ;
delete
var fruits
= [ "Banana" , "Orange" , "Apple" , "Mango" ] ;
delete fruits
[ 0 ] ;
toString() // 所有的對象都要這個方法
Math.min() || Math.max()
這個函數一般這樣使用,Math
. min ( 1 , 2 , 3 , 4 , 5 , 6 ) ; 查找數組時。所以需要加個applyMath
. min . apply ( null , arr
) ;
function myArrayMax ( arr ) { var len
= arr
. length
var max
= - Infinity ; while ( len
-- ) { if ( arr
[ len
] > max
) { max
= arr
[ len
] ; } } return max
;
}
總結
以上是生活随笔 為你收集整理的数组整理随手笔记 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。