㈠ JS數組循環遍歷常用的9種方法
首先定義一個數組
const arr = [1,2,3,4,5,6];
第一種:for循環
for (let i = 0;i<arr.length;i++){
console.log(arr[i]);
}
for(j=0,len=arr.length;j<len;j++){}//這種方法基本上是所有循環遍歷方法中性能最高的一種
第二種 for of (需要ES6支持) 性能要好於forin,但仍然比不上普通for循環
for (let value of arr){
console.log(value);
}
第三種 for in 它的效率是最低的
for (let i in arr){
console.log(arr[i]);
}
第四種 foreach() 實際上性能比普通for循環弱
1、箭頭函數寫法
arr.forEach(value =>{
console.log(value);
})
2、普通函數寫法
arr.forEach(function(value){
console.log(value);
})
第五種 entries()
for (let [index, value] of arr.entries()) {
console.log(value);
}
第六種 keys()
for (let inx of arr.keys()){
console.log(arr[inx]);
}
第七種 rece()
1、箭頭函數
arr.rece((pre,cur)=>{
console.log(cur);
})
2、普通函數
arr.rece(function(pre,cur){
console.log(cur);
})
第八種 map() 但實際效率還比不上foreach
1、箭頭函數
arr.map(value=>{
console.log(value);
})
2、普通函數
arr.map(function(value){
console.log(value);
})
第九種 values()
for (let value of arr.values()){
console.log(value);
}
㈡ js常用增刪改查方法/js比較運算符 邏輯運算符 賦值運算符 算術運算符
js數組遍歷某個值求和
一、增
1、push()
可接收任意數量的參數,把它們逐個添加至數組末尾,並返回修改後數組的長度。例如:
2、unshift()
該方法與push()類似,也可接收任意數量的參數,只不過是將參數逐個添加至數組前端而已,同樣返回新數組長度。咱們接著上面的例子:
3、concat()
該方法與push()方法有點類似,同樣是將元素添加至數組末尾,只不過這個數組已經不是原來的那個數組了,而是其副本,所以concat()操作數組後會返回一個新的數組。具體用法如下:
① 不傳參數,返回當前數組副本
② 傳遞一或多個數組,則該方法會將這些數組中的每一項都添加到結果數組中
③ 傳遞非數組參數,這些參數就會被直接添加到結果數組的末尾
繼續接著上面的栗子:
例子中一目瞭然,原數組保持不變,新數組後面添加了4、5、6三個元素。
4、splice()
前面的三個方法都具有很大局限性,因為不是添加到數組前就是數組後,而splice()就不一樣了,它非常靈活和強大。靈活是因為它可以添加元素到數組的任意位置,強大是因為它除了可以添加元素之外還具有刪除和替換元素的功能(這個後面會陸續講到)。
splice()可以向數組指定位置添加任意數量的元素,需要傳入至少3個參數: 起始位置、0(要刪除的元素個數)和要添加的元素。
依然接著上面的例子繼續:
可以看出,splice()與push()和unshift()一樣是直接在原數組上修改的。
二、刪
1、pop()
與push()方法配合使用可以構成後進先出的棧,該方法可從數組末尾刪除最後一項並返回該項。
接著上例:
2、shift()
與push()方法配合使用可以構成先進先出的隊列,該方法可刪除數組第一項並返回該項。
繼續接著上例:
3、slice()
定義和用法
slice() 方法以新的數組對象,返回數組中被選中的元素。
slice() 方法選擇從給定的 start 參數開始的元素,並在給定的 end 參數處結束,但不包括。
注釋:slice() 方法不會改變原始數組。
該方法同concat()一樣是返回一個新數組,不會影響原數組,只不過slice()是用來裁剪數組的,返回裁剪下來的數組,具體用法如下:
4、splice()
好,繼續講這個「萬能」的方法。
上面講到,該方法在添加數組元素的時候需要傳入3個以上參數,而其中第2個參數就是用於指定要刪除元素的個數的,那時我們傳的是數字0。那麼,如果單單只需刪除元素,我們就只需給splice()傳入兩個參數,第1個參數用於指定要刪除的第一項的位置,第2個參數用於指定要刪除元素的個數。
繼續上例~~
從索引項為2的位置開始刪除4個元素,所以結果為 [-1, 0, 1, 2]。
三、改
這個其實最靈活的方式就是直接使用splice()這個強大的方法了,其實通過以上對該方法的了解,我們大致就能知道使用該方法修改數組元素的基本原理。
原理很簡單,就是向指定位置插入任意數量的元素,且同時刪除任意數量的元素。
依然繼續上例~~
四、查
indexOf()和lastIndexOf()
這兩個方法都接收兩個參數:要查找的項和(可選的)表示查找起點位置的索引。其中,indexOf()從數組的開頭(位置0)開始向後查找,lastIndexOf()方法則從數組的末尾開始向前查找。
例如:
當找不到該元素時,返回 -1 ,lastIndexOf()方法同理。
1 數據類型
<script>
2 引用數據類型
object 對象類型
3 number 數字類型
包含所有的數字(整數,浮點數,正數,負數,極大極小數),Infinity(分母為零),NaN(not a number)
4 string 字元串類型
引號包含的任意文本,單雙引號都可以
輸出展示
2 比較運算符
<script>
/*
1 比較運算符
比較兩個值的大小 返回一個布爾值(true 或 false)
> < >= <= == != === !==
== 等於,只判斷數值
===全等,絕對等於,即判斷數據類型也判斷數值
!= == 取反
!== ===取反
console.log(undefined == null);//true 都沒有值
console.log(undefined === null);//false 數據類型不同undefined object
console.log(NaN == NaN); //false
console.log(NaN === NaN); //false
console.log(NaN != NaN); //true
console.log(NaN !== NaN); //true
/
</script>
3 邏輯運算符
<script>
/
2 邏輯運算符
連接多個表達式,返回一個布爾值(true 或 false)
&& 邏輯與 並且 所有的表達式都為true,結果才為true,有一個為false結果就為false
|| 邏輯或 或者 所有的表達式都為false,結果才為false,有一個為true結果就為true
! 邏輯非 取反 表達式為true取反就為true,反之亦然
注意: 邏輯與的優先順序大於邏輯或
*/
</script>
邏輯運算符演示
輸出到控制台的結果
4 賦值運算符
<script>
/*
3 賦值運算符
= 等號右邊的值賦值給左邊
+= x += y x = x + y 下同
-=
*=
/=
%= 要的是余數
*/
</script>
<script>
x = 7;
y = 3;
console.log(x/=y)
</script>
5 算術運算符
<script>
/*
算術運算符
+ - * / %(取余,取模) ++(自增) --(自減)
%(取余,取模) 應用 判斷奇偶數、倍數
++ 相當於自己加1 x++ 相當於 x = x + 1
-- 相當於自己加1 x-- 相當於 x = x - 1
+運算碰到字元串,直接進行字元串拼接,返回string類型
- * / %遇到字元串,都轉換成number類型進行計算,如果不能轉換成數字,則返回NaN,數據類型未number
true轉換1 false轉換為0
++ --
前++和後++,對於變數自己來說沒有區別都是+1
前++ 先賦值 在加1
後++ 先加1 再賦值
/
</script>
<script>
/ var x = 5;//number
var y = 2;//number
comsole.log(x + y);//7
comsole.log(x - y);//3
comsole.log(x * y);//10
comsole.log(x / y);//2.5
comsole.log(x % y);//1 */