2018/02/09

jsで配列の特定のオブジェクトの値を合計する











See the Pen jsで配列の特定のオブジェクトの値を合計する by takapen (@takapen) on CodePen.








html







jQuery使用
$(function(){

  var array = {'item':[
                {'name':'Aさん','age':'30才','iPhone':''},
                {'name':'Bさん','age':'31歳','iPhone':''},
                {'name':'Cさん','age':'32さい','iPhone':'true'},
                {'name':'Dさん','age':'33さい','iPhone':'true'},
                {'name':'Eさん','age':'34さい','iPhone':''}
              ]};

  var iPhoneTrueAgeSum = 0;//iPhone持ってる人の年齢合計
  var numberOfPeople = 0;//iPhone持ってる人の数

  for(var i = 0; i < array.item.length; i++){//オブジェクトの数だけ実行
    var $obj = array.item[i];//配列を0から順に取り出す
    var objAge = $obj.age;
    var objAgeNum = Number(objAge.replace(/[^-^0-9^\.]/g,""));//年齢を数字に

    if($obj.iPhone == 'true' && objAgeNum >= 32){//iPhoneを持っていて32歳以上の人
      iPhoneTrueAgeSum = iPhoneTrueAgeSum + objAgeNum;//if文の条件に合った人の年齢合計
      numberOfPeople++;//if文の条件に合った人の人数加算

      console.log('iPhone持ってる人の年齢の合計 '+iPhoneTrueAgeSum);
      $('#output-age').text('iPhone持ってる人の年齢の合計 '+iPhoneTrueAgeSum);

      console.log('iPhone持ってる人の人数 '+numberOfPeople+'人');
      $('#output-NoP').text('iPhone持ってる人の人数 '+numberOfPeople+'人');
    }
  }
  
});