2017-07-02 63 views
0

我試圖從一個數組的鍵和值並將其轉換爲一個鏈接列表。顯示鍵和對象值並將其轉換爲HTML鏈接

這是我的變量

var MyObj = [{ 
    "1": "Val_1", 
    "2": "Val_2", 
    "3": "Val_3", 
}]; 

這是如何我試圖讓鏈接看起來像

<a href="/?categories='+ MyObj[0].key +'&type='+MyObj[0].value+'/">MyObj[0].value</a> 

我一直在嘗試各種方法,但都沒有具體結果,我是最接近是在此狀態下[Object對象]

+0

你可以請檢查您的VAR MyObj中的語法嗎? **如果是一個哈希或數組目前尚不清楚** –

回答

2

如果你想要得到的鑰匙一個對象,你應該使用Object.keys方法。

然後你就可以遍歷您的對象的關鍵點,並建立鏈接。爲了返回的鏈接的數組,最好使用Array#map方法:

var MyObj = { 
 
    "1": "Val_1", 
 
    "2": "Val_2", 
 
    "3": "Val_3", 
 
}; 
 

 
var links = Object.keys(MyObj).map(function(key) { 
 
    return '<a href="/?categories='+ key + '&type=' + MyObj[key] + '/">' + MyObj[key] + '</a>'; 
 
}); 
 

 
console.log(links);

您可以運行的片段,並查看結果。

OR,在ES6語法:

const links = Object.keys(MyObj).map(key => `<a href="/?categories=${key}&type=${MyObj[key]}/">${MyObj[key]}</a>`); 
+0

有趣,這是[輸出](http://imgur.com/IF6wMcy)從我的控制檯,同樣適用於ES6但語法時纔對象是不確定的 – Wonderboy111

+0

哎呀,這是我的錯,我輸入了ES6部分未經覈實,這是錯的,我更新了答案;) –

1

如果我明白你糾正的console.log輸出。你可以達到你想要的,如下所示:

//declare variable 
var MyObj ={ 
    "1": "Val_1", 
    "2": "Val_2", 
    "3": "Val_3", 
}; 

//declare an array where you are going to store your elements 
var newArray = []; 
for(key in MyObj){ //loop over keys of MyObj object variable 
//string variable where we concatenate key and value as below 
    var str = "/?categories="+ key +"&type="+MyObj[key]+"/"; 
    newArray.push(str);//we push this string value to the newArray declared outside of the loop 
} 

console.log(newArray);//to see the result on the console 
//let me know if you have more questions in the comments 
+0

至少拋出一些解釋:O 2 –

+0

好吧,我會評論它 –

+0

我得到的輸出這裏介紹的其他解決方案同樣是[鏈接](HTTP ://imgur.com/IF6wMcy) – Wonderboy111

0

這是一個對象,而不是一個數組。

數組使用以下語法:

var myArr = ["Val_1", "Val_2"] 

而且你可以很容易地遍歷數組使用for循環

var myArray = ["val_1", "val_2"] 
 

 
for(let i = 0; i < myArray.length; i++){ 
 
    let url = "<a href=\"/?categories=" + i +"&type="+myArray[i]+"\">" +myArray[i]+"</a>" 
 
    console.log(url) 
 
}

0

如果我理解正確的問題,你應該使用$.param()。 它會改變你的對象爲URL字符串