我正在尝试从数组中获取键和值,并将其转换为链接列表。
这是我的变量
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]
答案 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字符串