如何在不知道键名称的情况下循环对象的低谷数组并提取键和值?
样本json:
(4) [{…}, {…}, {…}, {…}]
0: {Destination: "Usa"}
1: {Type: "commercial"}
2: {Transport: "plane"}
3: {price: "501-700"}
想要的结果:
http://localhost/appname +?destination = usa +&type = commercial +等...
任何一般建议或伪代码如何通过选择选项来大致编码边栏搜索?我的计划是:
1.通过单击特定的侧边栏按钮,将选择添加/删除到对象的会话存储阵列;
2.从这些选择中创建URL。
3.使用php,mysql根据url中的选择搜索数据库。
4.生成json页面。
5.根据该json页面使用javascript更新indexsearch.php数据。
答案 0 :(得分:0)
基本上,您可以使用map
遍历数组中的每个对象。
对于数组中的每个对象,我还假设有多个键值对。
Object.entries(obj)
返回[键,值]对元组(数组)的数组。
通过将这些与'&'联接,并通过'&'联接objs的外部数组,您将获得所需的结果。您可以使用toLowerCase删除所有区分大小写的问题
let data = [{Destination: "Usa"}, {Type: "commercial"}, {Transport: "plane"}, {price: "501-700"}]
let result = 'http://localhost/appname?' + data.map(obj => Object.entries(obj).map(([key,value]) => key.toLowerCase()+"="+value).join('&')).join('&');
console.log(result);
答案 1 :(得分:0)
这应该以简单的方式提供所需的结果。请注意,最后一个字符将是&
,但它仍然是有效的网址。您可以根据需要删除该字符。
const params = [
{Destination: "Usa"},
{Type: "commercial"},
{Transport: "plane"},
{price: "501-700"},
];
const url = params.reduce((res, param) => {
Object.keys(param).forEach(key => {
res += `${key}=${param[key]}&`
})
return res;
}, "http://localhost/appname?")
console.log(url);
// http://localhost/appname?Destination=Usa&Type=commercial&Transport=plane&price=501-700&
答案 2 :(得分:-1)
var a = [
{"Destination": "Usa"},
{"Type": "commercial"},
{"Transport": "plane"},
{"price": "501-700"}
];
for (var i = 0; i < a.length; i++) {
var keys = Object.keys(a[i]);
for (var k = 0; k < keys.length; k++) {
console.log(a[i][keys[k]]);
}
}
您可以使用Object.keys()
获取数组键,然后依次遍历数组和键。
然后创建您想要的完整内容:
var a = [
{"Destination": "Usa"},
{"Type": "commercial"},
{"Transport": "plane"},
{"price": "501-700"}
];
var url = "https://localhost/appname";
for (var i = 0; i < a.length; i++) {
var keys = Object.keys(a[i]);
for (var k = 0; k < keys.length; k++) {
if (i == 0) {
url += "?";
} else {
url += "&";
}
url += keys[k] + "=" + a[i][keys[k]];
}
}
console.log(url);
答案 3 :(得分:-1)
如果我理解得很好,我认为您的数据结构不需要2级(根据您的计划和要执行的操作)。 您可能只有
Lookup
Object.entries https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/entries的MDN文档