я не могу хранить более одного значения в массиве

Вот комбинация голосового ответа с обходным путем для столкновений Chrome :

generateGUID = (typeof(window.crypto) != 'undefined' && 
                typeof(window.crypto.getRandomValues) != 'undefined') ?
    function() {
        // If we have a cryptographically secure PRNG, use that
        // https://stackoverflow.com/questions/6906916/collisions-when-generating-uuids-in-javascript
        var buf = new Uint16Array(8);
        window.crypto.getRandomValues(buf);
        var S4 = function(num) {
            var ret = num.toString(16);
            while(ret.length < 4){
                ret = "0"+ret;
            }
            return ret;
        };
        return (S4(buf[0])+S4(buf[1])+"-"+S4(buf[2])+"-"+S4(buf[3])+"-"+S4(buf[4])+"-"+S4(buf[5])+S4(buf[6])+S4(buf[7]));
    }

    :

    function() {
        // Otherwise, just use Math.random
        // https://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
            var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
            return v.toString(16);
        });
    };

В jsbin , если вы хотите проверить его.

-2
задан Codeer 18 January 2019 в 11:32
поделиться

1 ответ

Как я понимаю, ваша проблема в том, что простые массивы не имеют переменного размера, то есть, если они установлены на определенную длину, новые значения не могут быть введены.

Пример: если у вас есть массив длины 4, вы не можете хранить что-либо с индексом 4 или выше.

Мой предпочтительный способ решения этой проблемы - использование ArrayLists.

Но вы также можете каждый раз создавать новый массив:

//stores history
if(choice != 4){
    String temp = new String[hist.length];
    for(int x = 0; x < hist.length; x++){
        temp[x] = hist[x];
    }
    temp[hist.length] = menu[choice - 1];
    hist = temp;
}

Вы также, вероятно, должны сделать это, если (choice < 4) {... Так как это проверит, если выбор меньше 4 и не, если это просто не 4.

0
ответ дан Christian Gröber 18 January 2019 в 11:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: