0과 Array.length 사이의 임의의 숫자를 가져 오려고합니다. 나는이있다 : 자바 스크립트 배열 임의로 0이났습니다
getRandom() {
const cars = Object.keys(this.index);
const randomInt = Math.floor(Math.random() * cars.length);
return cars[randomInt];
}
나는이 몇 번 실행하고
getRandom()
의 결과 중 하나에
0
을 발견했다.
0
이라는 내
this.index
개체에
key
이 없습니다.
수학 기능이 잘못 되었습니까?
코멘트를 읽은 후 UPDATE
, 그리고 내가 getRandom()
을 알고 잘못이 아니다. 나는 또한 너희들이 그것을 볼 수 있다면 reset()
기능을 가지고있다.
reset() { const cars = Object.keys(this.index); let i = cars.length; while (i--) { this.index[cars[i]] = 0; } }
은 내가 새로운 키 0
this.index
물체를 추가 해요 수 있습니까?
이 함수는 잘못은 아니지만 기대치가 될 수 있습니다. 유효한 난수 값은 무엇입니까? – str
'Math.random()'은'0'을 반환 할 수 있습니다. 그래서이'Math.floor (Math.random() * cars.length);는'0'이 될 수 있습니다. – Craicerjack
'cars'는 배열입니다. 비어 있지 않으면 인덱스 0에 항목이 있습니다. 그 항목 (0 자체가 아닌)은'this.index'의 유효한 키 여야합니다. – Thilo