2016-06-26 54 views
0

Android手機上的SMS消息存儲在數據庫中,因此我提取了 並將它們存儲在JSON數組中。從JSON數組中提取數據並將它們存儲在二維數組中

我想通過地址(手機號碼)對SMS進行分組。

我想要創建的結構是一個二維數組,在第二個dimendsion(值爲0,matrix [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>

+0

你只是想按'address'財產,總結他們的父母鍵和收集'sms'每個組名的項目,對不對? – RomanPerekhrest

+0

@RomanPerekhrest是的,這就是我做的:)! –

回答

0

的問題是,我有當我找到 新的SMS爲現有的數重置精確變量。

所以:

if(pinpoint>-10) { 

    matrixDTwoSize = matrix[pinpoint].length; 
    matrix[pinpoint][matrixDTwoSize]=actualBODY; 
    pinpoint = -10; 
    } 
相關問題