Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как подсчитать сумму всех индексов в массиве? (https://javascript.ru/forum/misc/70560-kak-podschitat-summu-vsekh-indeksov-v-massive.html)

JetBlack 15.09.2017 00:38

Как подсчитать сумму всех индексов в массиве?
 
man=Array(); 

man[0]=Array();
man[0][0]="30";
man[0][1]="40";
man[0][2]="50";
man[0][3]="50";
man[0][4]="40";
//---------------------------------------------------------
man[1]=Array();
man[1][0]="20";
man[1][1]="31";
man[1][2]="31";
man[1][3]="351";
man[1][4]="31";
//---------------------------------------------------------
man[2]=Array();
man[2][0]="123";
man[2][1]="123";
man[2][2]="51";
man[2][3]="190";
man[2][4]="87";
//---------------------------------------------------------
man[3]=Array();
man[3][0]="22";
man[3][1]="56";
man[3][2]="1000";
man[3][3]="220";
man[3][4]="100";


Необходимо чтобы alert выдавал общую сумму данных под номером [4] индекса.

j0hnik 15.09.2017 00:52

man=Array(); 

man[0]=Array();
man[0][0]="30";
man[0][1]="40";
man[0][2]="50";
man[0][3]="50";
man[0][4]="40";
//---------------------------------------------------------
man[1]=Array();
man[1][0]="20";
man[1][1]="31";
man[1][2]="31";
man[1][3]="351";
man[1][4]="31";
//---------------------------------------------------------
man[2]=Array();
man[2][0]="123";
man[2][1]="123";
man[2][2]="51";
man[2][3]="190";
man[2][4]="87";
//---------------------------------------------------------
man[3]=Array();
man[3][0]="22";
man[3][1]="56";
man[3][2]="1000";
man[3][3]="220";
man[3][4]="100";

var sum=0, i = man.length;
while(i--) sum+=+man[i][4];
alert(sum);

laimas 15.09.2017 01:08

JetBlack,
зачем тип данных Number вставляете в массив как String?

рони 15.09.2017 01:56

:)
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script src="https://nervgh.github.io/js/recursive-iterator.min.js"></script>
<script>
man=Array();

man[0]=Array();
man[0][0]="30";
man[0][1]="40";
man[0][2]="50";
man[0][3]="50";
man[0][4]="40";
//---------------------------------------------------------
man[1]=Array();
man[1][0]="20";
man[1][1]="31";
man[1][2]="31";
man[1][3]="351";
man[1][4]="31";
//---------------------------------------------------------
man[2]=Array();
man[2][0]="123";
man[2][1]="123";
man[2][2]="51";
man[2][3]="190";
man[2][4]="87";
//---------------------------------------------------------
man[3]=Array();
man[3][0]="22";
man[3][1]="56";
man[3][2]="1000";
man[3][3]="220";
man[3][4]="100";



      var iterator = new RecursiveIterator(man),
      sum = 0;
      for(var item = iterator.next(); !item.done; item = iterator.next()) {
          var state = item.value;
          if (state.key  == 4 && state.deep == 2 )  sum += +state.node
      }
  alert(sum)

</script>
</body>

</html>

Nexus 15.09.2017 08:22

man=Array(); 

man[0]=Array();
man[0][0]="30";
man[0][1]="40";
man[0][2]="50";
man[0][3]="50";
man[0][4]="40";
//---------------------------------------------------------
man[1]=Array();
man[1][0]="20";
man[1][1]="31";
man[1][2]="31";
man[1][3]="351";
man[1][4]="31";
//---------------------------------------------------------
man[2]=Array();
man[2][0]="123";
man[2][1]="123";
man[2][2]="51";
man[2][3]="190";
man[2][4]="87";
//---------------------------------------------------------
man[3]=Array();
man[3][0]="22";
man[3][1]="56";
man[3][2]="1000";
man[3][3]="220";
man[3][4]="100";

alert(man.map(val=>+val[4]).reduce((c,t)=>t+=c));
//alert(man.map(function(val){return +val[4];}).reduce(function(c,t){return t+=c;}));
/*var t=0;
man.map(val=>t+=+val[4]);
alert(t);*/
/*var t=0;
man.map(function(val){return t+=+val[4];});
alert(t);*/


Часовой пояс GMT +3, время: 19:33.