2016-10-05 1 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

당신이 올바르게하고 있습니다. 그러나 배열 대신 객체를 사용하십시오. Object require keys와 easy to key는 중복을 쉽게 발견 할 수있는 방법입니다. 열쇠가 있으면 추가를하십시오. 내가 솔루션 아래에 희망

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); 
관련 문제