2015-06-08 3 views
0

Итак, у меня есть код, который передает данные с сервера в виде массива javascript.Array.prototype.slice, не может получить «срез» неопределенного?

Я искал прототип и увидел, что вы можете выбирать части массива с помощью среза, но я не могу понять, как он работает даже при просмотре.

До сих пор у меня есть module.js, который загружает данные и направляет на мою страницу указательного

$.ajaxSetup({ 
    data: { 
     apptoken: apptoken 
    } 
}); 

var promise1 = $.get(dbidApplication, { 
    a: "dbpage", 
    pagename: "index.html" 
}); 


var promise2 = $.get(dbidTable, { 
    act: "API_GenResultsTable", 
    query: "{3.EX." + kRid + "}", 
    jsa: 1, 
    options: "num-1", 
}); 


$.when(promise1, promise2).then(function(templateArgs, dataArgs) { 
    var template = templateArgs[0]; 
    var markup = Mustache.render(template, qdb_data); 
    document.write(markup); 
    $("#formContents").html(markup); 
}); 

Моей страница index.html полностью пустая для

var stringit = qdb_data.toString(); 
var stationid = stringit.slice(4); 

console.log(stationid); 

на консоли, за исключением он показывает мой stringit и в 4 есть данные, поэтому я не уверен, что именно я делаю неправильно ... В общем, я пытаюсь использовать массив для заполнения шаблона.

Это то, что я вернулся из запроса ранее

var qdb_data = new Array(); 

qdb_data[0] = new Array(); 
qdb_data[0][0] = "VL14799- FT5850"; 
qdb_data[0][1] = "05-13-2015"; 
qdb_data[0][2] = ""; 
qdb_data[0][3] = "TANK PROPANE"; 
qdb_data[0][4] = "PLANT"; 
qdb_data[0][5] = "PROPANE"; 
qdb_data[0][6] = "TANK 31 PROPANE"; 
qdb_data[0][7] = "PLANT"; 
qdb_data[0][8] = "TANK 31 PROPANE"; 
qdb_data[0][9] = "PROPANE"; 
qdb_data[0][10] = "PROPANE"; 
qdb_data[0][11] = "100 PSI"; 
qdb_data[0][12] = "59 F"; 
qdb_data[0][13] = "411"; 
qdb_data[0][14] = ""; 
qdb_data[0][15] = ""; 
qdb_data[0][16] = "BR"; 
+1

Примечание. Использование 'document.write()' после того, как документ уже завершил загрузку, сначала сбросит его, чтобы не было содержимого перед записью аргумента. –

+2

Это не 'Array.prototype.slice', это' String.prototype.slice'. –

+0

Почему вы превращаете двухмерный массив в строку, прежде чем пытаться использовать '.slice()' на нем? Это не имеет никакого смысла для меня вообще. Вы показали, как выглядит массив 'qdb_data'. Пожалуйста, покажите точную структуру данных, которую вы хотите получить после вызова '.slice(). Если вы хотите получить подмножество содержимого в форме массива в качестве результата, вы НЕ должны сначала преобразовать строку в строку. Кроме того, не совсем ясно, что первый кодовый блок в вашем вопросе имеет отношение к вопросу. В этом блоке кода нет ссылки на '.lice()'. – jfriend00

ответ

1

В JavaScript как массив и строка имеют срез method.What вы на самом деле хотите это срез массива, а что у вас есть строка ломтика. JavaScript будет выполнять срез на основе того, является ли переменная строкой или массивом автоматически. Таким образом, чтобы получить значение в 4-м индексе, сделайте следующее.

var stationid = qdb_data[0].slice(4,5); 
Смежные вопросы