Как прочитать значения магазина в массиве в JS - PullRequest
0 голосов
/ 18 марта 2020

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

<script>
    var time="";
    var temp="";
    var current="";
    $(document).ready(function storetime(){

    time=['11:34:4','11:43:4','11:55:4','11:22:4','11:11:4'];
    temp=[33,44,55,66,77];
    current=[22,33,444,55,666];

var tim =[[time,temp,current]];
$.each(tim,function(i,val){
               $('#abc').append(`<tr><td>`+(this)[0]+`</td><td>`+(this)[1]+`</td><td>`+(this)[2]+`</td></tr>`); 
        });


});
</script>


````````output``````````````
Time Stamp  Temperature Current
11:34:4,11:43:4,11:55:4,11:22:4,11:11:4 33,44,55,66,77  22,33,444,55,666 

`````````````````I want output like this``````````

Time Stamp  Temperature Current
11:34:4 22  44
11:34:5 44  44
11:34:6 33  22
11:34:7 11  0
11:34:8 

Ответы [ 4 ]

2 голосов
/ 18 марта 2020

Вы должны сделать это следующим образом,

var time="";
var temp="";
var current="";
$(document).ready(function storetime(){

time=['11:34:4','11:43:4','11:55:4','11:22:4','11:11:4'];
temp=[33,44,55,66,77];
current=[22,33,444,55,666];

var tim =[time,temp,current];
$.each(time,function(i,val){
    $('#abc').append(`<tr><td>`+tim[0][i]+`</td><td>`+tim[1][i]+`</td><td>`+tim[2][i]+`</td></tr>`); 
});

Поскольку мы знаем, что весь массив, который у нас есть (время, температура, ток), имеет одинаковую длину. Итак, нам нужно выполнить итерацию, используя один из массивов. Кроме того, нет необходимости делать Тим вложенным массивом.

1 голос
/ 18 марта 2020

Используйте индекс для ссылки на другие массивы

var time = [];
var temp = [];
var current = [];
$(document).ready(function storetime() {
  time = ['11:34:4', '11:43:4', '11:55:4', '11:22:4', '11:11:4'];
  temp = [33, 44, 55, 66, 77];
  current = [22, 33, 444, 55, 666];

  $.each(time, function(i, val) {
    $('#abc').append(
      `<tr><td>` +
        val +
        `</td><td>` +
        temp[i] +
        `</td><td>` +
        current[i] +
        `</td></tr>`
    );
  });
});
table, th, td {
  border: 1px solid black;
  border-collapse: collapse;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="abc">
  <tr>
    <th>Time Stamp</th>
    <th>Temperature</th>
    <th>current</th>
  </tr>
</table>
0 голосов
/ 18 марта 2020

    var time="";
    var temp="";
    var current="";
    $(document).ready(function storetime(){

    time=['11:34:4','11:43:4','11:55:4','11:22:4','11:11:4'];
    temp=[33,44,55,66,77];
    current=[22,33,444,55,666];

var tim =[time,temp,current];

var length = tim[0].length;

for(let i=0;i<length;i++){

               $('#abc').append(`<tr><td>`+tim[0][i]+`</td><td>`+tim[1][i]+`</td><td>`+tim[2][i]+`</td></tr>`); 
       
}

});
td{
width:100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='abc'></div>
0 голосов
/ 18 марта 2020

У вас есть две скобки при инициализации tim:

[[time,temp,current]]

и tim [0] равен [time,temp,current], который выглядит как

[['11:34:4','11:43:4','11:55:4','11:22:4','11:11:4'],
 [33,44,55,66,77],
 [22,33,444,55,666]]

И снова у вас есть вложенные массивы, поэтому в ваш случай tim [0] [0] будет ['11:34:4','11:43:4','11:55:4','11:22:4','11:11:4'].

Вы можете уменьшить лишние скобки или получить доступ к элементам правильным способом.

...