2017-11-26 1 views
0

예 : 저는 3 가지 색상과 21 가지 숫자가 있습니다. 동적으로 숫자를 만들고 각 색상에 다른 색상을 지정해야합니다.Javascript : 항목에 동적으로 값을 할당하십시오.

나는 이런 식으로했다 :

var colors = ["black", "white", "red"], 
    nums = [], 
    count = 1; 

for (var i = 0; i < 7; i++) { 
    for (var c in colors) { 
    nums.push([{ 
     id: count, 
     color: colors[c] 
    }]); 
    count++ 
    } 
} 

내가 같은 일을하지만,이 개 루프를 거치지 않고 달성 할 수있는 방법이 있는지 알고 싶습니다? 감사합니다

+0

가 예상 결과 무엇입니까? – Xufox

+0

모듈러스 연산자 '%'는 nums = Array.from ({길이 : 21})을 도울 수 있습니다. ((사용되지 않은, 인덱스) => ([{id : 인덱스 + 1, 색상 : 색상 [인덱스 % 3]}])); –

+0

색상을 임의로 지정해야합니까? – dferenc

답변

0

당신은 달성 할 수 Math.random 사용하여 다음

var colors = ["black", "white", "red"]; 
 
var nums = []; 
 

 
for (var i = 0; i < 21; i++) { 
 
    var randomIndex = Math.floor(Math.random() * colors.length); 
 

 
    nums.push({ 
 
    id: i + 1, 
 
    colors: colors[randomIndex] 
 
    }); 
 
} 
 

 
console.log(nums);

+0

그는 21 개의 숫자가 필요합니다 –

+0

원래 게시물의 for-loop를 기반으로 한 약간의 오해의 여지가 있지만 해결되었습니다. –

관련 문제