2016-10-05 19 views
-3

預期的輸出應該像類[[Agri],「water」]值的面積應該是[3,3] 我已嘗試刪除重複的類別數組,如果重複發現然後區域添加應該發生如何能夠執行數組元素的添加

<!DOCTYPE html> 
<html> 
<body> 

<h1>Joining Two Arrays</h1> 

<p id="demo"></p> 

<script> 
var twodim = new Array(); 
var category = ["Agri", "Agri","water"]; 
var area = [1, 2, 3]; 

       for (n = 0; n < category.length; n=n+1) 
       { 

       twodim.push([category[n],area[n]]); 

       } 

alert(twodim); 

document.getElementById("demo").innerHTML = myChildren; 
</script> 
</body> 
</html> 
+0

這個解決方案能否請您出示完整的企圖?這些代碼似乎都沒有試圖做你所描述的。 – 4castle

+0

什麼是「myChildren」? –

回答

0

你做得對。但不是數組,而是使用對象。物體需要鑰匙和易鑰匙是檢測笨蛋的簡單方法。如果密鑰存在,那麼添加。

var twodim = {} 
 
var category = ["Agri", "Agri", "water"]; 
 
var area = [1, 2, 3]; 
 

 
for (var n = 0; n < category.length; n++) { 
 
    if (twodim[category[n]] === undefined) { 
 
    twodim[category[n]] = [category[n], area[n]] 
 
    } else { 
 
    twodim[category[n]][1] += area[n] 
 
    } 
 
} 
 

 
function getAsArray(obj) { 
 
    return Object.keys(obj).map(function(item) { 
 
    return obj[item]; 
 
    }); 
 
} 
 
console.log(twodim, getAsArray(twodim))

+0

我怎樣才能看到它的警報 – user28536

+0

非常感謝主席先生 – user28536

0

我希望下面的解決方案是對您有所幫助。

您還可以檢查在here

var new_cate = new Array(); 
var new_area = new Array(); 
var category = ["Agri", "Agri","water"]; 
var area = [1, 2, 3]; 

       for (n = 0; n < category.length; n=n+1) 
       { 

        var IsFlag = false; 
        for(i=0;i<new_cate.length;i++){ 

        if(new_cate[i] == category[n]) 
        { 
         new_area[i] += area[n]; 
         IsFlag = true; 
        } 
        } 
            if(!IsFlag) 
            { 
         new_cate.push(category[n]); 
        new_area.push(area[n]); 
            } 


       } 

console.log(new_cate); 
console.log(new_area);