I have this on a javascript var: (it's a http returned data, and I don't know if it's an array or string - (how can we see that?) - Update: using typeof returned "string", so it's a string.
[{"nomeDominio":"gggg.fa"},{"nomeDominio":"rarar.fa"}]
How can we pass/transform that, into something like this:
["gggg.fa","rarar.fa"]
?
Thanks a lot, MEM
Этот вопрос тесно связан с этим.
Я бы посоветовал прочитать мой ответ там, так как это действительно поможет; и с небольшой вариацией это просто сработало бы:
var responseString = '[{"nomeDominio":"gggg.fa"},{"nomeDominio":"rarar.fa"}]',
responseObject = JSON.parse(responseString),
nombresDeDominio = [];
for(var i in responseObject) {
nombresDeDominio.push(responseObject[i].nomeDominio)
}
Suerte!
Вы можете выяснить, является ли это строкой или уже проанализированным объектом, проверив тип вашей переменной, например:
ajax('url', function (response) {
alert(typeof response);
});
Теперь вы узнаете, является ли это "строкой"
или массив "объект"
.
Если это строка, вы можете использовать метод JSON.parse
, как предлагает @alcuadrado, в противном случае вы можете просто использовать массив.
В нескольких ответах предлагается использовать оператор for-in
для итерации по элементам массива, я бы не рекомендовал вам использовать его для этого.
Оператор for-in
следует использовать для перечисления по свойствам объекта, для итерации по массивам или массивоподобным объектам, использовать последовательный цикл как @ Кен Редлер предлагает.
Вам действительно следует избегать for-in
для этой цели, потому что:
Вы также можете использовать метод Array.prototype.map
для удовлетворения ваших требований:
var response = [{"nomeDominio":"gggg.fa"},{"nomeDominio":"rarar.fa"}];
var array = response.map(function (item) { return item.nomeDominio; });
// ["gggg.fa", "rarar.fa"]
это http возвращаемые данные, а я нет узнать, является ли это массивом или строкой
Это JSON, и вы можете использовать его непосредственно в JavaScript.
Если вы преобразуете его в свой массив, вы потеряете ключ/значение ассоциации; ты уверен, что это то, что ты хочешь?