2016-09-09 2 views
0

나는 자신을 더 잘 설명하려고 노력할 것이다. 자바 스크립트 개체가 있습니다. 예를 들면 : 나는 값이 키 내부가 얼마나 많이 잡으려고 노력하고키의 값을 얻고 'x'개의 원소를 생성하기 위해 객체를 루핑하기

<p>a 1</p> 
<p>b 1</p> 
<p>b 2</p> 
<p>c 1</p> 
<p>c 2</p> 
<p>c 3</p> 

: 내가 반환해야 무엇

const obj = { 
a: 1, 
b: 2, 
c: 3 
}; 

는의는 다음과 같이됩니다 <p> 가정 해 봅시다이다. 그 결과를 바탕으로 위에 표시된 결과를 생성합니다.

나는 같은 것을 할 노력하고있어 :

for (var k in obj) { 
    if (obj.hasOwnProperty(k)) { 
     return <p>{`key ${k} value ${obj[k]}`}</p>; 
    } 
    } 
} 

이 수익에만 1 개 단락을 .. 난 그 키 값을 통해 시작하고 내가 예를 표시처럼 그 단락을 생성 할 수있는 방법? 감사!

편집 : 쉽게 있다면

, 어떻게 내가 그때 내가 간단한지도로 원하는 결과를 얻을 수 있습니다

newObj = [ 
{ 
    name: a, 
    number: 1 
}, 
{ 
    name: b, 
    number: 1 
}, 
{ 
    name: b, 
    number: 2 
}, 
{ 
    name: c, 
    number: 1 
}, 
{ 
    name: c, 
    number: 2 
}, 
{ 
    name: c, 
    number: 3 
} 
]; 

obj을 변환 할 수 있습니다.

+2

이 문제는 개체의 값을 반복하는 방법이다. –

+0

너희들은 최소한 복제물을 만들기 전에 나의 질문을 읽을거야. –

+0

'obj [k]'는 원하는 단락 수를 반환하므로, 그 횟수만큼 반복하면된다. (var i = 0; i

답변

1

작은 도우미 함수 times()와 아주 쉽게 :이 속는 생각하지 않습니다

const times = (n, fn) => [...Array(n)].map((_, i) => fn(i)); 
 

 
const obj = { 
 
a: 1, 
 
b: 2, 
 
c: 3 
 
}; 
 

 
let result = []; 
 

 
Object.keys(obj).forEach(k => 
 
    times(obj[k], i => 
 
    result.push('<p>' + k + (i + 1) + '</p>'))); 
 

 
console.log(result); 
 
          
 
          
 
        

관련 문제