-1
我有一個javascript對象,我想遍歷和打印數據基於1個常見的類別。循環javascript對象來打印數據
Javascript對象:
var $states = {
"AL" : {
"longname": "Alabama",
"lawOne": "Alabama Law 1",
"lawTwo": "Alabama Law 2",
"lawThree": "Alabama Law 3",
"region" : "Southeast"
},
"AK" : {
"longname": "Alaska",
"lawOne": "Alaska Law 1",
"lawTwo": "Alaska Law 2",
"lawThree": "Alaska Law 3",
"region" : "Northwest"
},
"AZ" : {
"longname": "Arizona",
"lawOne": "Arizona Law 1",
"lawTwo": "Arizona Law 2",
"lawThree": "Arizona Law 3",
"region" : "Southwest"
},
etc...
}
我能過循環數組,並獲得粒狀的越來越控制檯登錄所有處於同一區域的狀態:
for (var key in $states) {
if ($states.hasOwnProperty(key)) {
var $getStateRegion = $states[key].region
if ($getStateRegion === "Northeast") {
console.log ($states[key].longname);
}
}
}
一旦我嘗試循環瀏覽這些數據並打印一張表格,這些數據就是我遇到問題的地方。我希望能夠有一個與長的名字,lawOne,lawTwo,和法律三個值的輸入在那裏。是什麼賦予了?一旦我嘗試運行for循環,這就是我遇到了障礙的地方。提前致謝!
是什麼問題? –
你的代碼工作正常,但你是如果段錯誤。 更改**東北** ** **西北** ** – HoangHieu
@BeingSunny問題是,目前記錄的所有國家的長名稱的列表。目標是循環訪問該地區的州,並在不同的
回答
請嘗試下面的工作代碼。
來源
2017-02-21 17:19:15
你是在正確的軌道上。在繼續之前,我想指出你正在使用for..in循環,但更新版本的Javascript也支持for..of循環,所以這是你可能想要考慮的。不同之處在於for..in循環提供了對象的鍵值,for..of循環提供了值,所以它通過跳過寫入以下效果的步驟來縮短代碼:
解決方案的祕訣在於如何處理DOM,並且有很多方法可以實現此目的。我會告訴你一個,但它不一定是最快或最好的。我建議您使用不同的DOM操作來找出最適合您的操作。
首先,我們知道如何讓一個記錄,所以循環的JavaScript的方面,你有處理...
接下來,我們需要創建表....我會認爲你要四列根據你的描述,但你可以很容易地調整這一點,把國家名稱和一條法律放在每一行,這可能是一個更好的設計,允許有不同數量的法律。
HTML代碼將是這個樣子:
那麼你的循環就需要通過創建爲出現幾行加入到這個網站:
我們將使用的字符串操作DOM,因爲它是一個開始的好地方,因爲它與手寫的內容最爲相似。
我們將把表格分成三部分:標題,正文和頁腳。
現在,在循環中,我們會根據需要創建每一行,並把它添加到身體:
我們的身體後,我們可以通過結合頭使我們的表,主體和頁腳:
然後我們找個地方把它注入到我們的文檔:
這是一個活生生的例子:
注意:關於活碼,HTML大於顯示框更大。在我的瀏覽器中,我必須向下滾動snippit HTML才能查看生成的表格。或者將snippit窗口展開爲完整的標籤頁,以便在更大的屏幕中查看它。
上面的代碼被簡化了,大多數編碼器會告訴你不要使用HTMLElement.innerHTML,因爲它很慢,但它是一個很好的開始。一旦你有了這個,開始練習document.create(tagName),然後使用更直接的DOM操作。
來源
2017-02-21 18:00:14
非常深入和有用的答案!謝謝!只是幾件事。當我將它加載到JSBin或Codepen中時,按鈕函數會引入一個表格,然後消失。我想在沙盒裏玩這個,就像我可以把DOM弄混一點。這裏的問題是,這不顯示基於公共數據點的數據。假設您在輸入字段中輸入「NJ」。期望的結果將顯示一張包含所有東北州和那些法律的表格。 –
要使用我提供給您的代碼,您可以使用一些「黑客」將代碼複製到Stack Overflow代碼片段編輯器。點擊「複製代碼段來回答」。這會將我的代碼複製到您的問題的新答案中。然後,請查看該鏈接下方,然後點擊「編輯上面的snippit」鏈接。這會給你一個開發環境,讓你可以隨意使用javascript,css和html。完成後,將其複製並粘貼到您自己的IDE中,然後刪除您創建的草稿答案,方法是不發帖就離開該頁面。 –
要根據自己的需要更改代碼,您需要定義表格的外觀和改變循環以滿足您的需求。因爲您可以將所需的數據輸出到控制檯,所以我假設您已經掌握了循環部分。如果您需要編寫這些循環的幫助,請發送您想要使用的表格佈局,並描述您希望表格過濾的各種方式,並幫助您構建代碼。 –
相關問題