js 迴圈拆詞 JS for迴圈及拆分

2021-10-17 06:15:05 字數 2083 閱讀 5558

首先,是簡單的陣列的知識,例如,建立乙個陣列,向陣列中新增乙個資料,訪問陣列的資料並賦值等等,還要注意字串的拼接等。

例如,向雜湊表中新增一組資料,並顯示新增的資料:

var stu_score = ;

//查詢'王雪'的資料

var score = stu_score['王雪'];

//列印新增的資料

console.log('王雪的成績為:'+score);

然後是簡單的 if語句

var score = 133;

if(score > 130)

else if( score > 120)

else if( score > 60)

else

接下來是for迴圈,for迴圈一般都會巢狀 if 語句,或者for迴圈巢狀,一般用來遍歷某個東西。

我認為,for 迴圈中最要的是不要陷入死迴圈。思路和邏輯要清晰。一般情況下,我們都會利用for迴圈遍歷某個陣列,再用if語句來規範其條件,完成for迴圈功能,但是在迴圈中,我們有時會巢狀更多的迴圈或者if語句,稍有疏忽,就會陷入到死迴圈中,導致程式崩潰,完成不了其功能。

首先,就我本身的能力,要解決這種情況

1,首先要明確邏輯,簡化思路,儘量減少複雜的巢狀。

2,簡化**,能遍歷一遍完成功能的,盡量不要遍歷第二遍。

3,拆分函式,將其邏輯拆分成若干個功能塊,用到某個功能的時候再呼叫相對應的函式。

下面是乙個簡單的pos機的問題中的一段**(水平很菜,將就看看吧.......):

for(var i = 0; i < inputs.length; i ++)

for(var j = 0; j < new_inputs.length; j ++)

if(inputs[i].barcode == new_inputs[j].barcode)

new_inputs[j].count ++;//比較barcode,若相等,count+1

else if(inputs[i].barcode != new_inputs[j].barcode && j === new_inputs.length - 1)

new_inputs.push(inputs[i]);

new_inputs[new_inputs.length - 1].count = 1;

break;//比較barcode,若不等,將其新增到new_inputs中,令其count = 1

我們可以將其拆分成這樣:

function add_item_to_new_inputs(inputs,new_inputs)

for(var i = 1;i < inputs.length; i ++)

comepare_barcode_to_push_new_inputs(new_inputs,inputs,i);//呼叫比較barcode的函式

function comepare_barcode_to_push_new_inputs(new_inputs,inputs,i)

for(var j = 0; j < new_inputs.length; j ++)

comepare_barcode(inputs,new_inputs,i,j);//呼叫比較barcode相等時的函式

if(inputs[i].barcode != new_inputs[j].barcode && j === new_inputs.length - 1)

new_inputs.push(inputs[i]);

new_inputs[new_inputs.length - 1].count = 1;

break;

}//在這個function中完成的功能是通過比較barcode的值來明確new_inputs中count的值

function comepare_barcode(inputs,new_inputs,i,j)

if(inputs[i].barcode == new_inputs[j].barcode)

new_inputs[j].count ++;

}//在這個function中完成的功能是比較barcode,若相等,count+1

這樣細小的拆分,可以將原**中的功能拆分成乙個個的函式。邏輯清晰,便於糾錯。

python 遍歷迴圈 拆包

for迴圈最經常的使用的方式就是遍歷 所有容器型別 獲取所有容器型別裡面的元素,就是遍歷 字串,列表,元組,字典,集合 字串 str abc for value in str print value 列表 my list 蘋果 士多啤梨 for value in my list print valu...

原生js實現物件的深拷貝及迴圈引用

我們使用object.assign target,sources 時,其實只是淺拷貝。只能複製第一層屬性,而如果第一層屬性中有物件或陣列的話,其實只是對物件或陣列的引用而已。我們修改target裡的物件屬性時,source物件中對應的物件屬性也會改變 let source let target ob...

JS用For迴圈實現斐波那契數列 及尾遞迴優化

斐波那契數列指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 1,f 2 1,f n f n 1 f n 2 n 3,n n 遞迴實現 function fibo n if n 2 else 遞迴非常占用記憶體,所以不能進行多次遞迴...