从JSON数组中提取数据并将其存储在二维数组中



Android手机上的短信,存储在数据库中,所以我提取,并将它们存储在JSON数组中。

我想把短信按地址(手机号码)分组。

我要创建的结构是一个二维数组,在第二维的每个第一个索引(值0,矩阵[index][0])上存储数字,在其他值上存储该数字的sms。

错误是在存储2个数字之后,其他数字没有被存储,它们收到的短信存储在第二个数字数组中。

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var sms = {
    '0' : {
        'address' : '+1',
        'body' : 'SMS1'
    },
    '1' : {
        'address' : '+2',
        'body' : 'SMS2'
    },
    '2' : {
        'address' : '+1',
        'body' : 'SMS3'
    },
    '3' : {
        'address' : '+2',
        'body' : 'SMS4'
    },
    '4' : {
        'address' : '+3',
        'body' : 'SMS5'
    },
    '5' : {
        'address' : '+4',
        'body' : 'SMS5'
    }
};
var matrix = [];
var html = "";
var actualBODY = "";
var actualADDRESS ="";
var matrixDOneSize =0;
var matrixDTwoSize =0;
var indexOfValue =0;
var pinpoint =-10;
for(i in sms) {
   if (sms.hasOwnProperty(i)) {
 actualBODY = sms[i]['body'];
 actualADDRESS = sms[i]['address'];
 if(i==0){
  
  matrix[0]=[];
  matrix[0][0]=actualADDRESS;
  matrix[0][1]=actualBODY;
 }
 
 else {
  matrixDOneSize = matrix.length;
  
  for(var j=0;j<matrixDOneSize;j++){
   
      indexOfValue = matrix[j][0].indexOf(actualADDRESS);
       if(indexOfValue>-1){
          pinpoint = j;
          
         }
        
        }
        
        if(pinpoint>-10) {
  matrixDTwoSize = matrix[pinpoint].length;
  matrix[pinpoint][matrixDTwoSize]=actualBODY;
  }
  else {
   matrix[matrixDOneSize]=[];
   matrix[matrixDOneSize][0]=actualADDRESS;
   matrix[matrixDOneSize][1]=actualBODY;
   
  }
  
 }
 
 
 }
 
}
var nexti = matrix.length;
html+="Total numbers ="+nexti;
for(var i=0;i<nexti;i++){
html+= "<ul>Mobile Number = "+ matrix[i][0];
var nextj = matrix[i].length;
var nrsms = nextj-1;
html+= "<li>Nr of SMS= "+nrsms+"</li>";
for(var j=1;j<nextj;j++){
html+= "<li>SMS = "+ matrix[i][j]+"</li>";
}
html+="</ul>";
}
document.getElementById("demo").innerHTML = html;
</script>
</body>
</html>

问题是,当我找到时,我必须重置精确变量现有号码的新短信。

:

 if(pinpoint>-10) {
  matrixDTwoSize = matrix[pinpoint].length;
  matrix[pinpoint][matrixDTwoSize]=actualBODY;
  pinpoint = -10;
  }

相关内容

  • 没有找到相关文章

最新更新