Así que básicamente importo un archivo JSON. Obtengo muchas matrices y cada matriz tiene 4 elementos. Quiero analizar el tercer elemento de cada matriz en su propia matriz de variables.
$("#nextQ").click(function() { var Quotes = []; var totalQ //The total number of available quotes to choose from //Get quotes from JSON file $.ajax({ url: '../facts.json', datatype: 'json', type: 'get', success: function(data) { console.log(data[0][2]); //This WORKS console.log(data.length); //Returns 64 totalQ = data.length; for (i = 0; i <= totalQ; i++) { Quotes[i] = data[3][2]; //This WORKS Quotes[i] = data[i][2]; //This gives ERROR } } }); }); Cuando uso data[i][2] me sale este error: Uncaught TypeError: Cannot read property '2' of undefined . Sin embargo, este error no ocurre si uso data[6][2] o cualquier otro número.
Debe actualizar la condición del bucle for desde i <= totalQ; a i <totalQ; , ya que el índice comienza desde 0
for (i = 0; i < totalQ; i++) { Quotes[i] = data[i][2]; } O puede usar $.each() como sugirió @adeneo
$.each(data,function(i,v){ Quotes[i] = v[2]; }) O puede usar el map()
Quotes = data.map(function(v){ return v[2]; })