function GET() {
var data = [];
for(x = 0; x < arguments.length; ++x)
data.push(location.href.match(new RegExp("/\?".concat(arguments[x],"=","([^\n&]*)")))[1])
return data;
}
example:
data = GET("id","name","foo");
query string : ?id=3&name=jet&foo=b
returns:
data[0] // 3
data[1] // jet
data[2] // b
or
alert(GET("id")[0]) // return 3
Это можно легко добиться с помощью ванильного JS. См. Ниже.
const data = {
"directories":{
"vegetables":{
"info":{
"name":"Vegetables"
},
"files":{
},
"directories":{
"green vegetables":{
"info":{
"name":"Green Vegetables"
},
"files":{
},
"directories":{
"lettuce":{
"info":{
"name":"Lettuce"
},
"files":{
}
},
"cucumber":{
"info":{
"name":"Cucumber"
},
"files":{
}
}
}
},
"orange vegetables":{
"info":{
"name":"Orange Vegetables"
},
"files":{
},
"directories":{
"3 deep":{
"info":{
"name":"Carrot"
},
"files":{
}
}
}
}
}
},
"fruit":{
"info":{
"name":"Fruit"
},
"files":{
},
"directories":{
"apple":{
"info":{
"name":"Apple"
},
"files":{
}
}
}
}
}
}
function buildList(dataRoot, elementRoot) {
// Only continue if there are directories to look at
if (dataRoot.directories) {
// Create a new list and append it to our current element
const list = document.createElement('ul');
elementRoot.appendChild(list);
Object.keys(dataRoot.directories).forEach(key => {
// Get the directory from the key
const directory = dataRoot.directories[key];
// Create a text node and a list element to put it in
const listElement = document.createElement('li');
const textNode = document.createTextNode(directory.info.name);
listElement.appendChild(textNode);
list.appendChild(listElement);
// Continue recursively down now using the current lis element
buildList(directory, listElement);
});
}
}
const rootElement = document.getElementById("root");
buildList(data, rootElement);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="root"></div>
Вы можете взять рекурсивный подход, взяв объект каталога и построить новый список <ul>
с именами как значение и проверить вложенное свойство каталога.
function getList(directories) {
return Object
.values(directories)
.reduce((ul, { info: { name }, directories }) => {
var li = document.createElement('li');
li.appendChild(document.createTextNode(name));
ul.appendChild(li);
if (directories) {
li.appendChild(getList(directories));
}
return ul;
}, document.createElement('ul'));
}
var data = { directories: { vegetables: { info: { name: "Vegetables" }, files: {}, directories: { "green vegetables": { info: { name: "Green Vegetables" }, files: {}, directories: { lettuce: { info: { name: "Lettuce" }, files: {} }, cucumber: { info: { name: "Cucumber" }, files: {} } } }, "orange vegetables": { info: { name: "Orange Vegetables" }, files: {}, directories: { "3 deep": { info: { name: "Carrot" }, files: {} } } } } }, fruit: { info: { name: "Fruit" }, files: {}, directories: { apple: { info: { name: "Apple" }, files: {} } } } } };
document.body.appendChild(getList(data.directories));
.as-console-wrapper { max-height: 100% !important; top: 0; }