JavaScript의 랜덤 오브젝트 생성기
-
20-09-2019 - |
문제
JavaScript의 임의의 객체 생성기가 필요합니다. 그런 도구를 찾을 수있는 아이디어가 있습니까?
다양한 복잡성을 가진 임의의 객체를 생성해야합니다. 내 목표는 이러한 객체를 직렬화하고 애플리케이션 HTTP API를 테스트하기 위해 JSON을 사용하는 것입니다.
해결책
function createRandomObj(fieldCount, allowNested)
{
var generatedObj = {};
for(var i = 0; i < fieldCount; i++) {
var generatedObjField;
switch(randomInt(allowNested ? 6 : 5)) {
case 0:
generatedObjField = randomInt(1000);
break;
case 1:
generatedObjField = Math.random();
break;
case 2:
generatedObjField = Math.random() < 0.5 ? true : false;
break;
case 3:
generatedObjField = randomString(randomInt(4) + 4);
break;
case 4:
generatedObjField = null;
break;
case 5:
generatedObjField = createRandomObj(fieldCount, allowNested);
break;
}
generatedObj[randomString(8)] = generatedObjField;
}
return generatedObj;
}
// helper functions
function randomInt(rightBound)
{
return Math.floor(Math.random() * rightBound);
}
function randomString(size)
{
var alphaChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var generatedString = '';
for(var i = 0; i < size; i++) {
generatedString += alphaChars[randomInt(alphaChars.length)];
}
return generatedString;
}
정수, 플로트, 문자열, 부울 또는 널 값이 모두있는 X 패러멘터와 함께 OBJ를 만듭니다.
방금 만들었습니다. b
다른 팁
당신이 사용할 수있는 하사드 도서관
랜덤 변수 및 임의 중첩 객체는 JavaScript의 조작
const h = require('hasard');
const randomInteger = h.integer({type: 'poisson', lambda: 4});
const randomString = h.string({
size: h.add(randomInteger, 5),
value: h.value('abcdefghijklmnopkrstuvw'.split(''))
});
const randomNumber = h.number([0, 100]);
const randomKeys = h.array({
size: randomInteger,
value: randomString
});
// we first define it, to use it as reference into randomObject
const randomValue = h.value();
const randomObject = h.object(
randomKeys,
randomValue
);
// And we set recursivity by setting his values afterward
randomValue.set([
randomString,
randomObject,
randomNumber,
randomInteger
]);
결과는 다음과 같습니다
[
{
"vbmujvv": "rfigcpcvpj",
"sjmcgvvk": 3,
"efdarehl": {
"odinthsuca": "rwjhmbfus",
"noihjtjen": 27.73332043042913,
"brspkaagb": "lnuiabcfd"
},
"febtungjhfokf": 49.28625818957401,
"eoemrkgi": {
"jkcuwrpsh": "ekjoltm",
"cincs": {
"fcovbwk": {
"whsgmjh": 48.00843935524626,
"agsjflef": 46.700796253998014
},
"ovkdfudgfm": 84.83383163217746,
"fpfetl": "djuvfjbjptf",
"kobmkstj": {
"wskgkkerk": 9,
"kvnptptek": 37.63655947554132,
"dsloun": 4
}
},
"krirwk": {
"sjgftomu": 51.663884142674775,
"hpjgibnli": 4
},
"pkhkgruls": "isuodwjrg"
},
"ortomnue": 71.71303423929236
}
]
부인 성명 나는 저자입니다 하사드 도서관
제휴하지 않습니다 StackOverflow