te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>Random object generator in JavaScript - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Random object generator in JavaScript - Stack Overflow

programmeradmin4浏览0评论

I need a random object generator in JavaScript that generates a variety of objects with different fields and values. Any ideas where I can find such tool?

I need to generate random objects with various plexity.. My goal is to use JSON in order to serialize these objects and fuzz test my application http api.

I need a random object generator in JavaScript that generates a variety of objects with different fields and values. Any ideas where I can find such tool?

I need to generate random objects with various plexity.. My goal is to use JSON in order to serialize these objects and fuzz test my application http api.

Share Improve this question edited Dec 11, 2013 at 23:39 LJNielsenDk 1,4601 gold badge16 silver badges32 bronze badges asked Mar 14, 2010 at 21:46 GjorgjiGjorgji 23.1k10 gold badges33 silver badges39 bronze badges 3
  • 5 Um... Write it? Or clarify your needs, because they sound very specific to me. – Ricket Commented Mar 14, 2010 at 21:47
  • I need to generate random objects with various plexity.. My goal is to use JSON in order to serialize these objects and fuzz test my application http api. – Gjorgji Commented Mar 14, 2010 at 22:07
  • See my answer, it does exactly what you said. – user216441 Commented Mar 14, 2010 at 22:16
Add a ment  | 

3 Answers 3

Reset to default 10
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;
}

It will create a obj with X paramenters, all with a integer, float, string, boolean or null value.
I just made it :B

You can use hasard library

Random variables and random nested objects manipulation in 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
]);

Results will looks like

[
  {
    "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
  }
]

DISCLAIMER i'm the author of hasard library

   // Array to track used objects if "Unique" is checked
    var usedObjects = [];

    // Function to get a random object
    function getRandomObject() {
        if (document.getElementById("uniqueCheckbox").checked) {
            // Unique mode - Remove used objects from the list
            if (usedObjects.length === objData.length) {
                alert("All objects have been used! Resetting the list.");
                usedObjects = [];
            }

            var availableObjects = objData.filter(function(item) {
                return !usedObjects.includes(item);
            });

            var randomIndex = Math.floor(Math.random() * availableObjects.length);
            var randomObject = availableObjects[randomIndex];
            usedObjects.push(randomObject);
        } else {
            // Normal mode - No uniqueness enforced
            var randomIndex = Math.floor(Math.random() * objData.length);
            var randomObject = objData[randomIndex];
        }

        return randomObject;
    }

    // Function to display the generated random objects
    function generateRandomObjects() {
        // Get the number of objects to generate from the input field
        var objectCount = parseInt(document.getElementById("objectCount").value);

        // Validate the number (should not exceed 1500)
        if (isNaN(objectCount) || objectCount < 1 || objectCount > 1500) {
            alert("Please enter a valid number between 1 and 1500.");
            return;
        }

        // Generate the specified number of random objects
        var result = [];
        for (var i = 0; i < objectCount; i++) {
            result.push(getRandomObject());
        }

        // Display the generated random objects
        document.getElementById("output").innerHTML = 'Random Object(s):'+  '<span>'+ result + '</span>';
    }

    // Function to reset the form and clear the output
    function resetForm() {
        // Clear the output
        document.getElementById("output").innerText = "Your random object(s) will appear here...";

        // Reset the input field to default value of 1
        document.getElementById("objectCount").value = 1;

        // Uncheck the unique checkbox
        document.getElementById("uniqueCheckbox").checked = false;

        // Clear the used objects array
        usedObjects = [];
    }
var objData = ['Lighthouse', 'Punching bag', 'Chaps', 'Shower cap', 'Cauldron', 'Eggnog', 'Video camera', 'Faucet', 'Beads', 'Necklace', 'Sticker', 'Bow tie', 'Kale', 'Mantle', 'Loaf of bread', 'Blackberry']

Random Object Generator - This is live example

发布评论

评论列表(0)

  1. 暂无评论