Для цикла в Java Script с сообщением SNS - PullRequest
0 голосов
/ 18 октября 2019

Я довольно новичок в Java Script, и мне нужна помощь с проблемой следующего фрагмента кода. Здесь я использую оператор IF для проверки входящего сообщения SNS. Если это правильно, я отображаю значения из сообщения.

  else if (obj.intent === "list" && obj.message === 'success'){

            var innerHTMLval = '<table class="test"><tr><td class="test-loc"><img src="favicon.png" width="10%"></td><td class="test-loc"> View</td></tr>'
                + ' <tr><td class="forecast">'+ obj.artikel0+ '</td><td class="forecast">' + obj.stueckzahl0 + '</td> </tr>'
                + ' <tr><td class="forecast">'+ obj.artikel1+ '</td><td class="forecast">' + obj.stueckzahl1 + '</td> </tr>'
                + ' <tr><td class="forecast">'+ obj.artikel2+ '</td><td class="forecast">' + obj.stueckzahl2 + '</td> </tr>'
                + '</table>'            
                document.getElementById('display').innerHTML = innerHTMLval;            
 }

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

Моя полезная нагрузка выглядит следующим образом:

{
    "intent": "list",
    "message": "success",
    "artikel0": "A",
    "stueckzahl0": 10,
    "artikel1": "B",
    "stueckzahl1": 10,
    "artikel2": "A",
    "stueckzahl2": 10,
    "artikel3": "C",
    "stueckzahl3": 10,

}

Есть ли возможность добавить строки с циклом Foor в зависимости от количества строк в полезной нагрузке?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 18 октября 2019
var obj = {
    "intent": "list",
    "message": "success",
    "artikel0": "A",
    "stueckzahl0": 10,
    "materiall0": "mat10",
    "artikel1": "B",
    "stueckzahl1": 11,
    "material1": "mat11",
    "artikel2": "A",
    "stueckzahl2": 10,
    "materiall2": "mat10",
    "artikel3": "C",
    "stueckzahl3": 10,
    "materiall3": "mat10",

}

var body = "";
 for(key in obj){
   if((key.indexOf("artike") != -1) || (key.indexOf("stueckzah") != -1) || (key.indexOf("material") != -1)){
     var isStart = (key.indexOf("artike") != -1);
     var isEnd = (key.indexOf("material") != -1);

     var end = (isEnd) ? '</td></tr>\r\n' :  '</td>';
     var start =  (isStart) ? '<tr><td class="forecast">' :  ' <td class="forecast">';
     body+= start+obj[key] +  end;
   }
 }
var innerHTMLval = '<table class="test"><tr><td class="test-loc"><img src="favicon.png" width="10%"></td><td class="test-loc"> View</td></tr>'  
+ body +'</table>'

вывод из тела

/*

<tr><td class="forecast">A</td> <td class="forecast">10</td> <td class="forecast">mat10</td></tr>
<tr><td class="forecast">B</td> <td class="forecast">11</td> <td class="forecast">mat11</td></tr>
<tr><td class="forecast">A</td> <td class="forecast">10</td> <td class="forecast">mat10</td></tr>
<tr><td class="forecast">C</td> <td class="forecast">10</td> <td class="forecast">mat10</td></tr>

*/
1 голос
/ 18 октября 2019

создайте переменную тела и добавьте к ней вот так

var body = "";
 for(key in obj){
   if((key.indexOf("artike") != -1) || (key.indexOf("stueckzah") != -1)){
     var end = (key.indexOf("stueckzah") != -1) ? '</td></tr>' :  '</td> ';
     var start =  (key.indexOf("stueckzah") != -1) ? ' <td class="forecast">' :  ' <tr><td class="forecast">';
     body+= start+obj[key] +  end;
   }
 }
var innerHTMLval = '<table class="test"><tr><td class="test-loc"><img src="favicon.png" width="10%"></td><td class="test-loc"> View</td></tr>'  
+ body +'</table>'
...