2014-11-05 4 views
-3

Это основной вопрос в JavaScript. Я много пробовал играть, но я не могу решить.значения массива javascript с двойными кавычками

У меня есть массив.

var keys = ["a", "b", "c"]; 
var array =[]; 

Я зацикливание эти ключи, чтобы сформировать другой массив

for (var i =0; i<keys.length; i++){ 
array[i]= "x" + keys[i]; 
} 

Если я напечатать этот массив

я получил ['xa']; но то, что мне нужно это ["xa"] Единственное отличие заключается в quotes "" ..

Почему я должен использовать этот массив в другом json, как с двойными кавычками. Заранее спасибо ..

рассмотреть мое JSon имя массива в качестве окончательного,

var query = { 
      "_source": { 
       "include": final 
       }. 

В настоящее время здесь запрос формируется как

var query = { 
      "_source": { 
       "include": '["xa"]' 
       } 

Но мне нужно:

var query = { 
      "_source": { 
       "include": ["xa"] 
       } 
+0

Ваш браузер, вероятно, будет выводить его как ' ''. Другие будут выводить его как '' '. Вам нужно проверить и заменить себя. – ArtOfCode

+1

Вы случайно не ищете' JSON.stringify() '? –

+0

Это было' '' для меня. – Bijan

ответ

0

Использование одинарные кавычки и вставлять в нее двойные кавычки. массив [i] = '"x' + keys [i] + '"';

+0

спасибо ..но когда я использую этот массив, он приближается, как ['"xa"'], но мне нужно ["xa"] – Subburaj

1

Если вы можете пройти через json, это не должно быть проблемой, но если вы сначала прочитаете его как строку и после использования этой строки в качестве аргумента, вы можете использовать функцию replace. Вы можете сделать это, как я дал здесь. How to replace all occurrences of a string in JavaScript?

+0

Я не хочу, чтобы он преобразовывался в строку, потому что, когда я использую его в json, он приходит с singelquotes .. – Subburaj

0

Я думаю, вы смущены тем, что вы видите напечатанным на консоли. Строки по своей сути не имеют ни одиночных, ни двойных кавычек, связанных с ними. Таким образом, не имеет значения, отображается ли в вашем браузере ['a','b','c'] или ["a","b","c"]. Массив все еще содержит одно и то же. Что вам нужно сделать, так это то, как оно преобразуется в строку, как вы заявили в своем вопросе. Вы сказали, что вам нужно использовать двойные кавычки. Попробуйте использовать JSON.stringify(). Вы заметите, что это выводит строку в желаемом формате. Вот небольшой пример:

var myArray = ['a', 'b', "c"]; 
// notice I even used a mix of single and double quotes in the declaration 
var arrayAsString = JSON.stringify(myArray); 
console.log(arrayAsString); 

Выход будет:

["a","b","c"] 
+0

спасибо, Я получил массив resut как ["xa"], так как я уже сказал, что использую этот массив в json, когда я использую этот массив в json, я получаю '["xa"]', что я могу сделать для этого. – Subburaj

+0

Что вы подразумеваете под «использованием этого массива в json»? Непонятно, что вы пытаетесь сделать. – forgivenson

Смежные вопросы