Заметил очень интересный вопрос:

var arr1=[a,b,c,d,e];
console.log(arr1[0].length);
/* undefined */

var str='a b c d e';
var arr2=str.split(' ');
console.log(arr2[0].length);
/* 1 */

Кто-нибудь объяснит причину? Спасибо!

-2
Lawrence Zhong 9 Апр 2021 в 08:49

3 ответа

Лучший ответ

В arr1 = [a, b, c, d], если переменные a, b, c, d определены как itrables (например: строка, массив), тогда arr [0] .length даст определенный пример вывода:

let a = "ab"
let b = "b"
let c = "c"
let d = "de"
let arr1 = [a, b, c, d]
arr1[0].length
// output: 2
-1
mohammad ali 9 Апр 2021 в 05:58

Ошибка возникает не во второй строке, а в самой первой, когда вы используете a без кавычек (').

Это потому, что переменная a не была определена раньше ...

Внимательно прочтите сообщение об ошибке: ReferenceError: a is not defined


Как это исправить:

var arr1 = ['a', 'b', 'c', 'd', 'e'];
0
pietrodito 9 Апр 2021 в 07:49

Это происходит из-за того, что ваш первый массив неверен. Используйте кавычки вокруг элементов массива, вы получите тот же результат.

var arr1=['a','b','c','d','e'];
console.log(arr1[0].length);
-1
Mohny 9 Апр 2021 в 06:07