2013-07-03 3 views
0

Если у меня есть array вроде этого:Синтаксический массив строк в JQuery

myArray ="['John', 'Jack', 'Abe', 'Adelle' 'Jim', 'Andrew', 'Matthew']; ['Carpenter', 'Reaper', 'Lincoln', 'Aidan', 'Raynor', 'Doe']"

где myArray[0] является ['John', 'Jack', 'Abe', 'Adelle' 'Jim', 'Andrew', 'Matthew']

Как я могу получить имя каждого из myArray[0] и myArray[1]?

+3

Ваш вопрос в замешательстве. Значение выглядит как строка. – alex

+1

Насколько я могу судить, ваш 'myArray [0]' просто «Джон» (предполагая, что вы фактически конвертируете свой 'string' в объект' array'). – haim770

+0

ya, myArray - это строка здесь –

ответ

4
var splitted = myArray.replace(/\'/g, '"').split("; "); 
myArray = []; 
for (var i = 0; i < splitted.length; i++) { 
    myArray[i] = JSON.parse(splitted[i]); 
}; 

myArray is 2d массив с именами.

На самом деле, если вы будете запускать этот код, вы получите исключение, но это потому, что вы пропустили запятую возле "Adelle" "Jim"

+0

Спасибо. Очень приятно – Kosmog

1

Вот решение:

var myArray ="['John', 'Jack', 'Abe', 'Adelle' 'Jim', 'Andrew', 'Matthew']; ['Carpenter', 'Reaper', 'Lincoln', 'Aidan', 'Raynor', 'Doe']" 

arrays = myArray.split(";") 
myArray= [] 
for(var a in arrays) { 
    myArray.push(eval(a)) 
} 
+0

Спасибо за ответ – Kosmog

1

Вдохновленный @ идеей Tommi в преобразование строки (это не массив!) в JSON, вот еще один способ сделать это, на этот раз без цикла:

var string ="['John', 'Jack', 'Abe', 'Adelle', 'Jim', 'Andrew', 'Matthew']; ['Carpenter', 'Reaper', 'Lincoln', 'Aidan', 'Raynor', 'Doe']"; 
var json = string 
    .replace(/^/, '[') 
    .replace(/$/, ']') 
    .replace(/\]; *\[/g, '], [') 
    .replace(/'/g, '"'); 
var array = JSON.parse(json); 
Смежные вопросы