2015-01-05 2 views
0

Я следующий код, который при запуске дает ошибку: TypeError: Не удается прочитать свойство «разбить» неопределенной
Here you can run it.

Создание массива массивов с JavaScript

var myData = "some1,some2,some3\nsome4,some5,some6\nsome7,some8,some9"; 
var arrayed = myData.split('\n'); 
var columns = arrayed.length; 
var urlArray = new Array(columns); 
console.log(arrayed); 
var newarrayed = arrayed.split(','); 
console.log(newarrayed); 

У меня есть myData массив, я хотите преобразовать его в массив массивов, сначала разбив на \n, чтобы разделить массивы, а затем на ,, чтобы создать элементы внутри массивов. так что этот список будет, как:

[[data1, data2, data3], [Data4, данные 5, data6], [данных7, data8, data9]]

console.log(arrayed); делает что-то подобное, но когда я попытайтесь получить к нему доступ, используя arrayed[0][0], он дает мне только первое письмо.

+1

Какая ошибка? Пожалуйста, включите всю интересующую информацию в свой вопрос. –

+2

Теперь Stack предлагает исполняемые фрагменты, вы должны использовать это вместо этой странной скрипки, такой как веб-сайт. –

+0

Также рассмотрите очистку своих образцов кода перед публикацией их; нам не нужны эти случайные пропущенные биты внизу. – AstroCB

ответ

4

Вы не правильно разделяете строки. Вы пытаетесь разбить их дважды, но второй раз терпит неудачу, потому что вы вызываете split на массив, а не на строку. Попробуйте вместо них перебрать их.

var myData = "some1,some2,some3\nsome4,some5,some6\nsome7,some8,some9"; 
var arrayed = myData.split('\n'); 
var columns = arrayed.length; 
var urlArray = new Array(columns); 
console.log(arrayed); 
var newarrayed = []; 
for (var i in arrayed) { 
    newarrayed.push(arrayed[i].split(',')); 
} 
console.log(newarrayed); 
+1

@Ugur Добро пожаловать. Рад, что смог помочь. :) Команда 'push' просто« подталкивает »другое значение в конец массива. Вы также можете снова сбросить значение. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push –

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