Если я правильно понял, то для каждого i
:
result[i]['date']
дает дату в положении i
result[i]['price']
дает цену на позиции i
Теперь в первую очередь, давайте посмотрим на ваш цикл:
for (var i = 0; i < result.length; i++) {
//Here you grab the date from the result array
tempDate = Date.parse(result[i]['date']);
//Here you grab the price from the result array and parse it to a float
tempArray = [parseFloat(result[i]['price'])];
//Here you grab the current date (of today)
var date = new Date();
//Here you overwrite the 'grabbed date' with the current date (of today)
tempDate = date.toString();
//Here you add the price at position i to the 'result array' called series
series.push(tempArray);
//Here you join tempArray with the tempDate
var tempDate = tempDate.concat(tempArray);
}
Так что же происходит не так?
Ну я приготовил для вас JsFiddle: http://jsfiddle.net/KzLFr/1/
Посмотрите внимательно на код и что именно «показывает вверх» в окне предупреждения. Вы видите, что значение tempDate перезаписывается текущей датой. Применяя эту информацию к вашему циклу: вы увидите, что для каждой итерации вы перезаписываете дату, которую вы берете из массива result
с текущей датой.
Это означает, что «фактические» даты (от result[i]['date']
) всегда переписывается, следовательно, если бы вы добавить все tempDates в массив на каждой итерации, вы будете в конечном итоге с массивом, состоящей из result.length
раза текущей даты ,
Еще один интересный момент - ваше утверждение: var tempDate = tempDate.concat(tempArray);
Как вы можете видеть во втором поле оповещения в JsFiddle, это создаст массив, который имеет два массива друг за другом. Но почему в мире вы бы сделали это на каждой итерации?
Кроме того, вы никогда не делали do что-то с вашими датами. Вы не добавляете их в массив или что-то еще: вы просто создаете их, а затем оставляете их в покое.
Это задает вопрос: что именно вы хотите сделать?
Поэтому:
ПРИМЕЧАНИЕ: Может быть, я ошибаюсь, но если я правильно вы хотите, чтобы в конечном итоге с массивом, который содержит x-axis
информацию и y-axis
информацию о. Потому что это не ясно из вашего вопроса и вашего кода, как вы хотите это сделать, я могу только догадываться.
Итак, угадав, что вы хотите, чтобы в конечном итоге, я бы переписать петлю следующим образом:
var dateData = [];
var priceData = [];
for(var i = 0; i < result.length; i++){
dateData.push(result[i][0]);
priceData.push(result[i][1]);
}
Вы можете увидеть, как это работает здесь: http://jsfiddle.net/WT58s/1/
Если это не поможет решить проблема, пожалуйста, объясните, с чем вы хотите закончить (двухмерный массив или два разных массива?), поэтому мы можем помочь вам лучше.
Кроме того, часто при загрузке информации из Интернета информация хранится в обратном порядке; поэтому начинаем с текущей даты, а затем идем назад во времени.
Попытайтесь проверить, так ли это в случае с вашими данными. Если это действительно так, то вы можете прочитать о движении задним ходом здесь:
Reverse order of elements in 2-dimensional array
Так когда же числа или строки имеют 'concat' метод? – Ian
Вы добавляете массив, как вы добавляете любое другое значение. –
@Ian: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat. –