반응형
JavaScript 배열에서 임의 항목 가져오기
var items = Array(523, 3452, 334, 31, ..., 5346);
에서 랜덤 아이템을 가져오려면 어떻게 해야 하나요?items
?
var item = items[Math.floor(Math.random()*items.length)];
밑줄 사용(또는 loDash :):
var randomArray = [
'#cc0000','#00cc00', '#0000cc'
];
// use _.sample
var randomElement = _.sample(randomArray);
// manually use _.random
var randomElement = randomArray[_.random(randomArray.length-1)];
또는 전체 어레이를 섞으려면:
// use underscore's shuffle function
var firstRandomElement = _.shuffle(randomArray)[0];
1. 솔루션: 어레이 프로토타입 정의
Array.prototype.random = function () {
return this[Math.floor((Math.random()*this.length))];
}
인라인 어레이로 동작합니다.
[2,3,5].random()
물론 사전에 정의된 어레이도
var list = [2,3,5]
list.random()
2. 솔루션: 목록을 받아들여 요소를 반환하는 커스텀 함수를 정의합니다.
function get_random (list) {
return list[Math.floor((Math.random()*list.length))];
}
get_random([2,3,5])
이 문제를 해결하기 위해 jQuery를 사용해야 하는 경우(NB: 사용하지 마십시오):
(function($) {
$.rand = function(arg) {
if ($.isArray(arg)) {
return arg[$.rand(arg.length)];
} else if (typeof arg === "number") {
return Math.floor(Math.random() * arg);
} else {
return 4; // chosen by fair dice roll
}
};
})(jQuery);
var items = [523, 3452, 334, 31, ..., 5346];
var item = jQuery.rand(items);
이 플러그인은 어레이 또는 [0]의 값을 지정한 경우 임의 요소를 반환합니다.n) 번호 또는 기타 임의의 보장된 랜덤 값!
어레이의 길이를 바탕으로 함수를 재귀적으로 호출함으로써 어레이 반환이 생성됩니다.
http://jsfiddle.net/2eyQX/에서 작업 데모 실시
또 다른 방법이 있습니다.
function rand(items) {
// "~~" for a closest "int"
return items[~~(items.length * Math.random())];
}
또는 @1248177에 의해 다음과 같이 권장됩니다.
function rand(items) {
// "|" for a kinda "int div"
return items[items.length * Math.random() | 0];
}
var random = items[Math.floor(Math.random()*items.length)]
jQuery는 JavaScript!자바스크립트 프레임워크일 뿐입니다.따라서 임의의 항목을 찾으려면 예를 들어 일반 이전 JavaScript를 사용합니다.
var randomItem = items[Math.floor(Math.random()*items.length)]
// 1. Random shuffle items
items.sort(function() {return 0.5 - Math.random()})
// 2. Get first item
var item = items[0]
단축:
var item = items.sort(function() {return 0.5 - Math.random()})[0];
(Jose dB에 의해) 더 쏜다:
let item = items.sort(() => 0.5 - Math.random())[0];
var rndval=items[Math.floor(Math.random()*items.length)];
var items = Array(523,3452,334,31,...5346);
function rand(min, max) {
var offset = min;
var range = (max - min) + 1;
var randomNumber = Math.floor( Math.random() * range) + offset;
return randomNumber;
}
randomNumber = rand(0, items.length - 1);
randomItem = items[randomNumber];
크레디트:
node.js를 사용하는 경우 고유 랜덤 어레이를 사용할 수 있습니다.단순히 배열에서 무작위로 무언가를 선택합니다.
다른 방법으로는 어레이 프로토타입에 메서드를 추가하는 방법이 있습니다.
Array.prototype.random = function (length) {
return this[Math.floor((Math.random()*length))];
}
var teams = ['patriots', 'colts', 'jets', 'texans', 'ravens', 'broncos']
var chosen_team = teams.random(teams.length)
alert(chosen_team)
const ArrayRandomModule = {
// get random item from array
random: function (array) {
return array[Math.random() * array.length | 0];
},
// [mutate]: extract from given array a random item
pick: function (array, i) {
return array.splice(i >= 0 ? i : Math.random() * array.length | 0, 1)[0];
},
// [mutate]: shuffle the given array
shuffle: function (array) {
for (var i = array.length; i > 0; --i)
array.push(array.splice(Math.random() * i | 0, 1)[0]);
return array;
}
}
언급URL : https://stackoverflow.com/questions/5915096/get-a-random-item-from-a-javascript-array
반응형
'programing' 카테고리의 다른 글
프로그램 실행 시간을 계산하는 방법은 무엇입니까? (0) | 2023.01.20 |
---|---|
다음 항목 중 하나가 목록에 있는지 확인하는 방법은 무엇입니까? (0) | 2023.01.20 |
자바어로 물체의 모니터는 무슨 뜻입니까?왜 이 단어를 사용하는가? (0) | 2023.01.20 |
목록에 있는 모든 아이템을 Python과 함께 곱하려면 어떻게 해야 하나요? (0) | 2023.01.20 |
Java에서 문자열 배열을 문자열로 변환 (0) | 2023.01.20 |