導航:首頁 > 編程語言 > js數組for循環

js數組for循環

發布時間:2023-08-21 08:52:17

『壹』 js中數組和對象循環遍歷

數組:

var arr = [『a』,『b』,'c'];

for (let i = 0;i<arr.length;i++){

console.log(i,arr[i])

};

對象:

var person = { name:'tom',age:'29',sex:'男『};

// 對象如果要用for循環來遍歷,需要先有Object.key()的方法來拿到手殲可迭代(遍歷)的私有屬性名的集合(數組)

var keys = Object.keys(person);

for (let i = 0;i<keys.length;i++){

console.log(keys[i]+":"+person[keys[i]]);

};

數組:

for(let key in arr){

// 值得注意的是,key為數組的索引,如若需要獲取屬性的值,則需要使用數組加索引下標 的形式來獲取

console.log(key,arr[key]);

}

對象:

for(let key in obj){

// 值得注意的是,key為對象的鍵名,鍵值要以obj[key]的方式來獲取

console.log(key,obj[key]);

}

數組:

for(let value of arr){

//值得注意的是,for...of跟for...in是不一樣的,for...in遍歷的是數組的索引,for...of遍歷的是數組的值

console.log(value);

}

對象:

for...in是不能單獨來遍歷一個對象的,會報錯。

如果對象是一個類數組對象,那用array.from方法轉成一個數組就可以用for...of來遍歷了。

或者結合Object.keys()方法來使用

for(let key of Object.keys(obj)){

// for...of遍歷輸出的也是鍵名

console.log(key,obj[obj]);

}

數組:

forEach()方法遍歷數組是沒有返回值

值得注意的是數組中有幾項,那麼傳遞進去的匿名回調函數拍啟就需要執行幾次;

arr.forEach((item,index,arr)=>{

console.log(item,index,arr)

)

// 其中item是數組中的當前項,index是數組中的當前下標,arr是原始數組

對象:

原則上forEach是用來遍歷數組的,不能遍歷對象,但是可以用Object.getOnwPropertyNames()方法來使得對象能被forEach遍歷出來。

Object.getOnwPropertyNames()返回一個數組,成員畢賀沖是參數對象自身全部屬性的屬性名,不管該屬性是否能被遍歷。

Object.getOnwPropertyNames(obj).forEach((item,index,arr)=>{

console.log(item,index,obj[item])

})

『貳』 怎麼在javascript里定義數組並用for循環賦值

1、定義數組

vararr1=[];//通過[]方式定義一個數組
vararr2=newArray(2);//通過Array對象定義一個數組

2、for循環賦值

for(vari=0;i<arr2.length;i++){//循環數組
arr2[i]=i;//為arr2賦每個數組元素賦值
arr1[i]=i;//往arr1中賦數組初始值
}

『叄』 js數組幾種常見的操作方法

關於js數組的用法有很多,下面主要針對一些簡單的操作,比如合並,反轉,添加刪除等簡單的操作總結一下。

關於js數組的用法有很多,下面主要針對一些簡單的操作,比如合並,反轉,添加刪除等簡單的操作總結一下。

第一:讀取數組 for循環

方法如下:

var ay=[1,"sdsd","sdsd"]
for (var i=0;i<ay.length;i++) {

console.log("index:"+i+" "+ay[i]) //index:0 1 index:1 sdsd index:2 sdsd

}

第二:合並數組 concat

方法如下:

var arr1=['w','e','s'];

var arr2=['e','y','u'];
var arr3=arr1.concat(arr2);
console.log(arr3) //['w','e','s''e','y','u'];
第三:數組變為字元串格式 join

方法如下:

var arr1=['w','e','s'];

var arr4=arr1.join()
console.log(arr4) //w,e,s

第四:刪除最後一個元素,針對老數組是刪除最後一個,針對新數組是返回最後一個 pop

var arr6=["d","s","t"];
var arr7=arr6.pop();
console.log(arr6) //["d","s"];
console.log(arr7);// t

第五:添加最後一個元素,針對老數組最後一個元素後面添加一個元素,新數組返回元素個數 push

var arr8=["i","u","t"];

var arr9=arr8.push("k");

console.log(arr8); //["i","u","t","k"];

console.log(arr9); // 4

第六:shift() 和pop()一樣,不同的是操作的是開頭刪除的元素shift();具體操作不在展示
第七:unshiift()和push一樣,不同的是操作的是開頭添加的元素unshift();具體操作不再展示

第八:反轉數組 reverse

方法如下:

var arr1=['w','e','s'];

var arr10=arr1.reverse()

console.log(arr10) //['s','e','w'];

第九:數組排序 sort a-b正向 b-a 反向

正向

var arr11=[3,1,5,8,28]
var arr12=arr11.sort(function (a,b) {
return a-b;
})
console.log(arr12) //[1,3,5,8,28];

反向

var arr13=arr11.sort(function (a,b) {
return b-a;
})
console.log(arr13) //[28,8,5,3,1]

第十:數組截取 數組截取的方法主要有slice 和splice,另外說到截取我這里隨便也把字元串截取帶上,字元串截取的方法主要有substr 和substring

(1)slice 使用方法arr.slice(m,n);其中arr為數組,m,n為兩個參數,意思是從已有數組中返回選定的元素,截取位置均為下標,其中m必須,為起始位置,可以為負值,n為結束位置(截取位置並不包含)。

示例如下:

①只有起起始值,並且為正,默認的從起始位置一直到整個數組結束,起始下標從0開始

var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1)
console.log(arr) //[2,3,5,6,8,9] 老數組是沒有變化的,下面不在列舉,都是一樣的
console.log(arr1) //[3,5,6,8,9] 只有起始參數,並且為正值,返回新數組從下標1開始截取

②只有起始值,並且為負,默認的是從起始位置一直到整個數組結束,此處沒有起始值,數組的最後一個下標是-1,比如此例,如果從-6開始取,必定是整個數組

var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1)
console.log(arr1) //[9] 只有起始參數,並且為負值,從數組尾部截取元素

③有起始值和結束值,並且為正,此處需注意下標是從小到大,比如你(3,1)肯定是取不到值的,另外截取的下標個數並不包含最後一個下標

var arr=[2,3,5,6,8,9]
var arr1=arr.slice(1,4)
console.log(arr1) //[3,5,6] 此時是從下標1開始到下標4,但是需要注意的是並不包含下標4,准確的說是1-3的下標

④有起始值和結束值,並且為負,此處需注意下秒也是從小到大,同理,比如(-1,-6)也是肯定取不到值的,另外截取的下標個數也並不包含最後一個下標

var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-6,-1)
console.log(arr1) //[2,3,5,6,8]

⑤有起始值和結束值,並且正負都有

負值到0

var arr=[2,3,5,6,8,9]
var arr1=arr.slice(-1,0)

//剛剛都看到了,數組下標都是從小到大的,所以說如果正負都有的情況下,理論上應該可以取值的,比如這個例子,-1為9的小標,0為2的下標,所以取值應該為 [9],但是結果並不是這樣的
console.log(arr1) //[ ] 從這里可以看出他的結果是為空的,所以從負值到0結果是取不到的

負值到正直

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(-1,2)

//那從負值到正值呢,同樣也是取不到值的

console.log(arr1) //[ ]

正直到負值

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(2,-1)

//那從正直到負值,這個理論上是取不到的,但是看下結果

console.log(arr1) //[ 5,6,8] 從結果可以看出是可以取的 原理是2的下標為5,-1的下標為9,不包含結束位置下標

總結:這個方法看著可能會麻煩些(也可能被我寫的麻煩啦),比如正到負等,不知道大家都是怎麼操作,我一般用這個取值都是只截取正的,所以這個實際操作還是非常簡單的。

(2)splice 像數組中添加或者刪除元素
arr.splice(m,n,index,index1,...,indexx)
m是起始位置,n是刪除元素的個數,index是要添加的元素,在不添加元素的前提下,只有第一個參數是必須的,後面兩個都不是必須的,在需要添加元素的情況下,三個元素都是必須的,此方法和slice是不一樣的,這個返回的是被刪除的元素

示例如下:

只刪除不添加

注意看此例,是(1,2)刪除兩個,如果是(1,0),則表示刪除零個,也就是不刪除的意思,如果只有一個參數則表示從這里開始刪除,比如是(1)則為[2],當然這個也是可以取負值,但是這個和slice是不一樣的,只能起始位置取負值,因為刪除的個數不可能為負值,slice可以取(2,-1),這個就截然不同啦,但是剛剛也說啦,slice是不可以起始位置取負值,結束位置取正的,但是這個是可以的,比如(-1,0)則表示從-1開始刪除零個,結果為[2,3,5,6,8,9],(-6,2),結果為[5,6,8,9],另外這個刪除的第二個值如果寫的過大,也只是刪除從本下標到最後一個,比如(2,78)為[2,3]

var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2)
console.log(arr) // [2,6,8,9] 注意看此處才是我們要的數組,從下標1開始刪除刪除兩個
console.log(arr1) //[3,5] 此處是我們刪除掉的數組

刪除加添加 具體的和上面的差不多,主要添加了添加元素的效果,這個也可以添加多個元素

var arr=[2,3,5,6,8,9]
var arr1=arr.splice(1,2,"il")
console.log(arr) //[2,"li",6,8,9]
console.log(arr1) //[3,5]

總結:此方法用的時候,一般也都是只取正值

(3)substr 這個是字元串的用法 用法arr.substr(m,n) m必選也可以負值 n選填,注意看這個並不是結束為止而是截取的個數

示例如下:

只有一個參數 默認從此下標開始,取後面所有的

正值

var arr="sdhgfhf"
var arr1=arr.substr(1)
console.log(arr)// "sdhgfhf"這個是不變的,下面不再列舉
console.log(arr1)//"dhgfhf" 從下標1開始取後面所有的

負值

var arr="sdhgfhf"
var arr1=arr.substr(-2)
console.log(arr1)//"hf" 從下標-2開始取後面所有的

兩個參數,從第一個下標開始,截取到下標2的長度

var arr="sdhgfhf"
var arr1=arr.substr(1,3)
console.log(arr1)//"dhg" 從下標1開始取後面所有的 同理如果為負值,比如(-6,3)則為"hjf";後面的始終為長度

總結:此方法需注意不要和數組的混淆,這個是截取長度的

(4)substring 用法arr.substring(m,n) 兩個參數,m必須,起始位置 ,n選填,截取下標的結束位置,此用法和上面slice有點類似,但是需要注意的是此方法是不支持負值的

示例如下:

只有一個參數

var arr="sdhgfhf"
var arr1=arr.substring(1)
console.log(arr1)//"dhgfhf"從下標1開始取後面所有的

兩個參數

var arr="sdhgfhf"
var arr1=arr.substring(1,3)
console.log(arr1)// "dh"從下標1開始截取到下標3,但是不包含3

總結:此方法不支持負值,只針對下標來截取的

最後,以上主要是總結的數組的一些簡單的操作方法,學無止境,繼續努力。

『肆』 javascript數組循環賦值

javascript定義數組方式錯誤,如果要聲明一個數組則只需要
var m=[],n=[];
數組大小是不必給出的,javascript會自動根據需要設定數組長度

『伍』 詳解JS中常見的5 種 for 循環

for 循環在平時開發中使用頻率最高的,前後端數據交互時,常見的數據類型就是數組和對象,處理對象和數組時經常使用到 for 遍歷,因此需要徹底搞懂這 5 種 for 循環。它們分別為:

1、for
for 循環是出現最早,也是應用最普遍的一個遍歷,能夠滿足絕大多數的遍歷。可以遍歷 數組、對象、字元串,示例:

2、for ... in
for ... in 是在 ES5 中新增的,以任意順序迭代一個對象的除Symbol以外的可枚舉屬性,包括繼承的可枚舉屬性。

3、for ... of
for ... of 語句在可迭代對象(包括 Array、Map、Set、String、TypedArray、arguments 對象等等)上創建一個迭代循環,調用自定義迭代鉤子,並為每個不同屬性的值執行語句。

4、for await...of
創建一個循環,該循環遍歷非同步可迭代對象以及同步可迭代對象,包括內置的 String、Array,類數組對象(arguments 或 nodeList),TypedArray, Map, Set 和用戶定義的非同步/同步迭代器。
它使用對象的每個不同屬性的值調用要執行的語句來調用自定義迭代鉤子。
類似於 await 運算符一樣,該語句只能在一個async function 內部使用

5、forEach
forEach 是ES5版本發布的,按升序為數組中含有效值的每一項執行一次回調函數,那些已刪除或者未初始化的項將被跳過(例如在稀疏數組上),一般認為是 普通for循環 的加強版。

6、map
遍歷時可以返回一個新數組,新數組的結果是原數組中每個元素都調用一次提供的函數後返回的值。

1、使用場景差異
for循環是最早最原始的循環遍歷語句,for 內部定義一個變數,按照條件進行循環遍歷,通常是數組的長度,當超過長度時就停止循環,一般遍歷的都是數組或類數組。
遍歷對象時,由於對象沒有長度,所以使用 Object.keys() 獲取對象的所有屬性,以數組形式返回。
for / in主要是用來遍歷對象上的可枚舉屬性,包括原型對象上的屬性,按任意順序進行遍歷,遍歷對象時獲取到的是屬性的鍵值,遍歷的是數組,數組的下標當做鍵值。
for / of用於遍歷可迭代對象的數據,包括 Array、Map、Set、String、TypedArray、arguments 對象等等。
for await...of用於遍歷非同步可迭代對象,該語句只能在一個async function 內部使用。
forEach 是 for 的加升級版,使用更簡單,攜帶參數更多,但本質還是數組的循環,每個元素都執行一次回調,不會改變原數組。
map是給原數組每個元素都執行一次回調,返回一個新數組,不會改變原數組。
2、功能差異
forEach、map 不支持跳出循環,其他不支持。
for await ... of 能夠支持非同步操作,其他的不支持。
對於純對象的遍歷, for ... in 枚舉更方便。
對於數組遍歷,如果不需要索引,可以直接使用 for...of 獲取值,還可支持 break 或 return ;如果還需要索引,使用 forEach 更適合,但不支持 return。
如果是一個數組映射成另一個數組,使用 map 最合適。
3、性能差異
在測試環境、測試數據條件一致的情況下,性能排序為:
for > for of > forEach > map > for in。
for 因為沒有額外的函數調用和上下文,所以性能是最快的。
for ... of 具有 iterator 介面的數據結構,可以使用它來迭代成員,直接讀取鍵值。
forEach 是 for 的語法糖,還有許多的參數和上下文,因此會慢一些。
map 因為它返回的是一個等長的全新數組,數組創建和賦值產生的性能開銷較大。
for...in 性能最差,因為需要列舉對象的所有屬性,有轉化過程,開銷比較大。

在項目開發中,我們應該根據實際需求,去選擇一個合適的 for 遍歷。以下是一些使用建議:
如果需要把數據映射成另外一個數組,如變成對應布爾值,推薦使用 map ,不會修改原數組,使用語法簡單。
數組遍歷時,可以使用 for 、forEach 或 for...of。
遍歷的是純對象時,推薦使用 for ... in 。
如果是需要對迭代器遍歷,推薦使用 for ... of。
如果是在數組中篩選符合條件的數組,使用 fillter 。

『陸』 js里的數組怎麼循環顯示

使用for循環,循環輸出顯示即可。

代碼如下:
var a=[1,2,3]
for(var i=0;i<a.length;i++)
document.write(a[i]+'<br>');

閱讀全文

與js數組for循環相關的資料

熱點內容
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7
收拾文件有哪些小妙招 瀏覽:431
pdf文件去底網 瀏覽:253
win10重裝系統需要格式化c盤嗎 瀏覽:424
路由器trx文件 瀏覽:655
淘寶店鋪數據包怎麼做 瀏覽:195
win10鍵盤黏連 瀏覽:332
json如何生成表格 瀏覽:323
怎麼修復sql資料庫表 瀏覽:40
微信微博差別 瀏覽:163
簽到積分換禮品app 瀏覽:812
mfc最近打開文件 瀏覽:672
app埋點平台都有哪些app 瀏覽:314
瑞斯康達網路管理界面 瀏覽:254
ca證書管理器linux 瀏覽:358
蘋果id安全提示問題3個字元 瀏覽:949

友情鏈接