#javascript #jquery #arrays
#javascript #jquery #массивы
Вопрос:
У меня есть массив файлов json с данными, и я хочу использовать его в массиве jquery.
Мой файл json выглядит следующим образом;
[{"id":"1","value":"0.00","score":"a"},
{"id":"2","value":"0.00","score":"c"},
{"id":"3","value":"12.56","score":"e"}]
и тогда результат моего массива jquery, который я хочу, должен быть таким (но без данных оценки и значения.
var setup = [
{
"type": "single",
"subtype": {
"type": "Point",
"score": use 'score' of the json file
},
"properties": {
"text": use 'value' of the json file,
"height": 60
}
},
{
"type": "single",
"subtype": {
"type": "Point",
"score": use score of the json file
},
"properties": {
"text": use value of the json file,
"height": 60
}
}
];
Ниже я предпринял попытку настроить массив jquery, но я не настолько хорош в этом. Я думаю, мне нужно использовать двойной $ каждый? но как мне создать массив?
var setup = [];
// FETCHING DATA FROM JSON FILE
$.getJSON("results.json", function(data) {
// ITERATING THROUGH OBJECTS
$.each(data, function (key, value) {
var test = "";
$.each(value, function(index, obj) {
});
});
setup.push(setup);
});
Заранее спасибо 🙂
Ответ №1:
Вы можете использовать Array.prototype.map()
метод для получения результата.
const data = [
{ id: '1', value: '0.00', score: 'a' },
{ id: '2', value: '0.00', score: 'c' },
{ id: '3', value: '12.56', score: 'e' },
];
const ret = data.map((x) => ({
type: 'single',
subtype: {
type: 'Point',
score: x.score,
},
properties: {
text: x.value,
height: 60,
},
}));
console.log(ret);
Комментарии:
1. работает как шарм 🙂 спасибо, что я ввел ajax—> $.ajax({ метод: «GET», тип данных: «json», url: ‘https:bla.json ‘, данные: данные, успех: функция(данные) { const ret = data.map((x) =>({ тип: ‘single’, геометрия: { тип: ‘Point’, оценка: [x.score1, x.score2], }, свойства: { текст: x.value, высота: 30, } })); console.log(ret); // сделайте некоторыепрочее } });
Ответ №2:
Вы можете использовать по одному для каждого цикла и передавать объект с нужными вам элементами. Проверьте приведенный ниже пример:
var jsonData = [{
"id": "1",
"value": "0.00",
"score": "a"
},
{
"id": "2",
"value": "0.00",
"score": "c"
},
{
"id": "3",
"value": "12.56",
"score": "e"
}
]
var setup = [];
// FETCHING DATA FROM JSON FILE
$.each(jsonData, function(key, value) {
var test = "";
d = {
"type": "single",
"subtype": {
"type": "Point",
"score": value.score
},
"properties": {
"text": value.value,
"height": 60
}
};
setup.push(d)
});
console.log(setup)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Комментарии:
1. Спасибо, этот метод также сработал для меня 🙂