2016-03-08 4 views
1

Я немного новичок здесь, так что я буду просто прыгать прямо в примере вопроса у меня возникли:Преобразовать массив 1D строк в 2D массив

Я хочу, чтобы преобразовать это: "[email protected]%[email protected]%[email protected] "

в этом:

cat | dog 
arm | hand 
tree| apple 
..etc 

Как и в, 2 колонки в таблице, или 2D массива. Изолировать использование строк не сложно, это массивные манипуляции, которые меня толкают.

Вот одна попытка: `

function key_abb(input) { 
    if(input.map) { 
    return input.map(key_abb); 
    }else { 
    var temp = input.toString(); 
    temp = temp.replace("abbreviated-name=", ""); 
    temp = temp.replace("name=", ""); 
    return temp; 
    } 
}` 

вход является диапазон входного сигнала, который отформатирован так:

|abbreviated-name="cat" name="dog" | 
|abbreviated-name="arm" name="hand" |... 

К сожалению, это еще раз возвращающегося две строки в пределах одной и той же колонке , поэтому единственное, что было сделано, это то, что дополнительный текст был удален, я не уверен, как создать выходной массив, который я бы хотел. Спасибо!

+0

Вы найдете в секции [ '.split()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split) метод. – Marty

+0

Привет, marty, я тоже пытался это сделать, но я все еще придерживаюсь аналогичной проблемы: как получить массив 1D, отсортированный по массиву 2D-вывода? Кроме того, как мне сделать «код» в комментариях? – MarleyFree

ответ

2

Здесь вы идете:

var str = '[email protected]%[email protected]%[email protected]'; 
 
var data = str.split('%'); 
 

 
for (var i = 0; i < data.length; i++) { 
 
    data[i] = data[i].split('@'); 
 
} 
 
    
 
console.log(data);

Результаты в:

[ 
    ["cat", "dog"], 
    ["arm", "hand"], 
    ["tree", "apple"] 
] 
+0

Ничего себе, что полностью сработало, мне просто сложно схватить массивы и манипулировать ими. Спасибо огромное! – MarleyFree