显示对象的键和值并转换为html链接

时间:2017-07-02 16:55:44

标签: javascript jquery

我正在尝试从数组中获取键和值,并将其转换为链接列表。

这是我的变量

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>

我一直在尝试各种方法,但没有具体的结果,我最接近的是并在console.log中输出状态[Object object]

4 个答案:

答案 0 :(得分:2)

如果要获取Object的键,则应使用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>`);

答案 1 :(得分:1)

如果我理解你是对的。你可以实现你想要的,如下所示:

//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

答案 2 :(得分: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)
}

答案 3 :(得分:0)

如果我正确理解了问题,您应该使用$.param()。 它会将您的对象转换为url字符串