2017-07-02 64 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字符串