WebHU - Programozási kérdések és válaszok

véletlenszerű értéket választ ki a társított tömbből javascript használatával? [másolat]

Lehetséges ismétlődések:
JavaScript: Véletlenszerű érték lekérése tömbből
Hogyan választhatok véletlenszerűen egy tárgykulcsot?

tegyük fel, hogy van egy ilyen tömbünk:

var MrArray = new Array(5);
MrArray['one']='oneValue';
MrArray['two']='twoValue';
MrArray['three']='threeValue';
MrArray['four']='fourValue';
MrArray['five']='fiveValue';

rendben? az Array társítva van. és van string kulcsunk és karakterlánc értéke. Most! Hogyan tudok ebből véletlenszerű értéket kiválasztani? Szerkesztés: így szeretném használni:

<A href="Array value Here">Array Key Here</a>

Üdvözlettel Sam

10.07.2011


Válaszok:


1

Az itt leírt módszerrel a következő függvényt hozhatjuk létre :

function randomKey(obj) {
    var ret;
    var c = 0;
    for (var key in obj)
        if (Math.random() < 1/++c)
           ret = key;
    return ret;
}

Véletlenszerű kulcsot ad vissza, így ha véletlenszerű értéket szeretne kapni a MrArray-ból, tegye a következőket:

var value = MrArray[randomKey(MrArray)];

jsPerf benchmark, amely összehasonlítja ennek és a másik válasznak a sebességét.

10.07.2011
  • +1 erre: 1/++c. Azt hiszem, még nem láttam ezt a trükköt. 11.07.2011

  • 2

    Itt:

    function fetch_random(obj) {
        var temp_key, keys = [];
        for(temp_key in obj) {
           if(obj.hasOwnProperty(temp_key)) {
               keys.push(temp_key);
           }
        }
        return obj[keys[Math.floor(Math.random() * keys.length)]];
    }
    

    Src: Hogyan választhatok véletlenszerűen objektumkulcsot?

    10.07.2011
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..