Проблем с метода '.length' при масиви.


3
Искам да проверя дължината на два масива според броя на елементите им. Когато ползвам '.length' обаче, ми изчислява всеки символ в масива(включително и интервалите. Например масива с елементи [123] [22 2], ще ми каже, че е с дължина "7"...вместо две....Как да оправя това?



Отговори



2
Може ли да постнеш и кода, който ти прави проблем, защото лично аз не мога да разбера какъв е проблема?

от a.dimitrov (1047 точки)


0

Ако декларираш масива така - var array = [123, 222]; тогава ще имаш два елемента. Съмнява ме, че си го направил така var array = "[123] [22 2]"; при което това не е масив а стринг, защото си го хванал в кавичките. 

 

Най-добре постни кода, който ползваш.


от scarylabcat (801 точки)


0

Вече се оправих, но все още съм объркан.
Това е кодът:

function check() {
    var number = document.getElementById('sequence'(Това е id-то на input тага в HTML-а ми)).value;
    var arr = number.split(' ');
    var len2 = arr.length;
    var temp = new Array();
    var tempLen = temp.length;
    var result = new Array();
    var resultLen = result.length
    var test = new Array();
 
    for (var i = 0; i < len2; i++) {
        temp = arr[i] + ', ';
        while (arr[i] == arr[i + 1]) {
            temp += arr[i + 1] + ', ';
            i++;
        }
        if (temp.length > result.length) {
            result = temp;
        }
    }
    console.log(result);
    var len = result.length;  (тук смята символите в масива....май го е превърнал в стринг и брои символите, от които се състои стринга...)
    var len1 = temp.length;  (тук е същото нещо, само че с другия масив...)
    console.log(len + ', ' + len1);
}

от Rub (0 точки)


0

Ето как го накарах да работи: 

 

function check() {
    var number = document.getElementById('sequence').value;
    var arr = number.split(' ');
    var len = arr.length;
    var temp = new Array();
    var result = new Array();
    var tempLen = temp.length;
    var resultLen = result.length;
 
    for (var i = 0; i < len; i++) {
        temp = arr[i];
        while (arr[i] == arr[i + 1]) {
            temp += ', ' + arr[i + 1];
            i++;
            tempLen++;
            if (tempLen > resultLen) {
                result = temp;
                resultLen = tempLen;
            }
        }
        tempLen = 0;
    }
    document.getElementById('result').innerHTML = "The longest sequence of equal numbers is: " + result;
}

от Rub (0 точки)