2017-03-27 1 views
0

이것은 어리석은 질문 일 수 있지만 이에 대한 빠른 해결책을 원합니다.키 배열 전체에 2 개의 값을 할당하십시오.

I 기본 색 배열을 가지고

foreg : defColors = ['green', 'yellow'];

및 I 칼럼의 다른 배열을

cols = ['lowest', 'low', 'medium', 'high', 'highest'];

I 같은 cols 배열에서 처음 세 개의 항목에 대한 값을 가질 이.

filler = ['lowest': 'darkred', 'low': 'red'];

가 지금은 cols 배열의 값의 나머지 값을 할당하고 같이 만들고 싶어 :

filler = [lowest: 'darkred', low: 'red', medium: 'green', high: 'yellow', highest: 'green']

이 까다로운 일이 될 수도 있지만 정확히 같은하려면, 따라서 기본 색상에 2 개의 항목이있는 경우에는 col 항목의 나머지 모든 항목에 대해 루프의 값을 지정합니다.

참고 : 나는 또한 그 값이 같은 할당하지 않습니다 COL 항목의 배열을 가지고 :

remainingKeys = ['medium', 'high', 'highest']; 당신은 filler의 속성을 당신의 remainingKeys 반복 업데이트 할 Array#forEach을 사용할 수 있습니다

+0

'충전제 = 최하위 로우 darkred : 레드] '이 문자열 또는 객체의 어레이는? 당신이 가지고있는 방식은 구문 적으로 유효한 JavaScript가 아닙니다. – gyre

+0

@gyre, 따옴표를 붙이기가 너무 게으므로 모두 문자열입니다 –

+0

'filler '배열이 올바르지 않습니다 – Weedoze

답변

1

객체 (배열이 아니기 때문에 사각형이 아닌 중괄호로 묶어야 함). remainder operator (%)은 defColors 배열의 색상을 반복 패턴으로 선택하는 데 유용합니다.

var defColors = ['green', 'yellow'] 
 
var cols = ['lowest', 'low', 'medium', 'high', 'highest'] 
 
var filler = {'lowest': 'darkred', 'low': 'red'} 
 
var remainingKeys = ['medium', 'high', 'highest']; 
 

 

 
remainingKeys.forEach(function (key, i) { 
 
    this[key] = defColors[i % defColors.length] 
 
}, filler) 
 

 
console.log(filler)
.as-console-wrapper { min-height: 100%; }

+0

잠깐만, 미안하지만, 잠시 전까지는 알지 못했기 때문에, 나는 지식을 공유 할 것이라고 생각했습니다. '%'는 [나머지 연산자] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Remainder_%28%29)이며 모듈과는 약간 다릅니다 연산자 (차이점은 음수가 처리되는 방식과 관련이 있습니다.) JS에는 현재 실제 모듈러스 연산자가 없지만 [추가 제안]이 있습니다 (http://wiki.ecmascript.org/doku .php? id = strawman : modulo_operator). –

+0

그 차이점을 공유해 주셔서 감사합니다. 나는 이미'%'가 그런 식으로 수학적'mod'와는 다르다는 것을 알고 있었지만, 관례가 그것을 "나머지 연산자"라고 부르는 것을 모른다고 알고있었습니다. 이 경우에는'i'도'defColors.length'도 부정적 일 수 없기 때문에 그 차이는 무의미합니다. – gyre

관련 문제