#javascript #jquery
#javascript #jquery
Вопрос:
"one"
"two"
"three"
Выше приведен вывод из ajax. Как я могу преобразовать их в массив?
["one","two","three"]
Я пробовал push() и split, но результат всегда [«один»] [«два»] [«три»]
$(function() {
$.ajax({
type: "GET",
dataType: 'jsonp',
url: 'https://spreadsheets.google.com/feeds/list/1VC633BXpMElJjRWvIRuZIP7UrEhuw6BdscnrV2heox0/1/public/full?alt=json',
success: function(data) {
var entry = data.feed.entry;
//console.log(entry);
for (var x in entry) {
numbers = entry[x].gsx$numbers.$t;
aaa = numbers.split();
console.log(aaa);
}
}
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Спасибо за вашу помощь…
Комментарии:
1. Пожалуйста, покажите строку. И использования
split
будет достаточно
Ответ №1:
Объяснение: [... ]
преобразует entry
в массив. Используя map
функцию, возвращает все это strings
. Однако они могут включать empty strings
. Вот почему я использовал filter
, который отфильтровывает strings
с ненулевой длиной и присваивает результирующему массиву arr
🙂
$(function() {
$.ajax({
type: "GET",
dataType: 'jsonp',
url: 'https://spreadsheets.google.com/feeds/list/1VC633BXpMElJjRWvIRuZIP7UrEhuw6BdscnrV2heox0/1/public/full?alt=json',
success: function(data) {
var entry = data.feed.entry;
var arr = [...entry].map((el)=>{
return el.gsx$numbers.$t;
}).filter((el) => {
return el.trim();
});
console.log(arr);
}
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>