看起來很明顯,但是假設我們有 2 個陣列,如果某些條件為真,我想將一些物件推入其中。一般來說,最好是這樣:
let arr1 = [];
let arr2 = [];
if(someCond){
for(let i=0;i<5;i ){
arr1.push(i)
}
}
else{
for(let i=0;i<5;i ){
arr2.push(i)
}
}
或像這樣:
let arr1 = [];
let arr2 = [];
for(let i=0;i<5;i ){
if(cond) arr1.push(i)
else arr2.push(i)
}
我認為第二個選項看起來更短,但性能可能更差。
uj5u.com熱心網友回復:
最好的是:
const arr1 = [];
const arr2 = [];
const cond = Math.random() > 0.5;
const arr = cond ? arr1 : arr2;
for(let i = 0; i < 5; i){
arr.push(i);
}
console.log('arr1', arr1);
console.log('arr2', arr2);
uj5u.com熱心網友回復:
最好執行一次回圈而不是陣列的長度,因此這是您的最佳選擇
if(someCond){
for(let i=0;i<5;i ){
arr1.push(i)
}
}
else{
for(let i=0;i<5;i ){
arr2.push(i)
}
}
因為你只執行一次條件然后..
uj5u.com熱心網友回復:
作為處理此代碼的路徑,我得到以下
對于陣列中的每個專案,我必須檢查條件
或沒有第一個選項,對于這個條件,我必須這樣做,否則,對每個專案都這樣做。
第一個選項在性能上更好,但是,除非您使用 BigData,否則我認為這根本不會影響處理,因為兩者都是要處理的簡單指令。
這當然取決于您回圈的專案數和條件的復雜性。
如果你在條件中使用一個函式,它會使用更多的記憶體,所以第一個選項會更好。
如果您的條件很簡單,并且您的專案集合不是太大,您可以自由使用任何沒有問題的。
uj5u.com熱心網友回復:
假設沒有優化,第二個選項確實需要更多的計算。因此可以推斷出第二種選擇的性能確實更差。例如,if 子句中的條件會針對表的每個元素進行評估,在最壞的情況下,它可能會導致代碼中出現許多“跳轉”。如果陣列的大小確實是 5,那么效果可以忽略不計。
另一種方法可能如下。
let arr1 = [];
let arr2 = [];
let arr3=someCond?arr1:arr2;
for(let i=0;i<5;i ){
arr3.push(i)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/438475.html
標籤:javascript 循环 条件语句
上一篇:按鍵對多維陣列進行分組
