Как определить тип данных результата оператора распространения в javaScript?
Каков тип данных элементов, выводимых с помощью спреда? И можно ли назвать только один элемент после распространения, как с массивами?
Вот пример:
let ages = [1,2,3,1,4];
let chars = ['a','b','c'];
console.log(ages); // shows array> (5) [1, 2, 3, 1, 4]
console.log(...ages); // shows this> 1 2 3 1 4 - ??
console.log(typeof(ages[1]));// number
console.log(typeof(chars));// object
console.log(typeof(chars[1])); //string
//console.log(typeof(...ages)); - NOT WORKING
//console.log(typeof(...ages[1])); - NOT WORKING
Спасибо!
1 ответ
Каков тип данных элементов, выводимых с помощью спреда?
Каждый член массива будет иметь свой собственный тип.
И можно ли назвать только один элемент после распространения, как с массивами?
Смысл распространения состоит в том, чтобы взять все элементы массива и распространить их.
Если вы хотите получить доступ к одному члену, то вам не следует использовать спред в первую очередь.
console.log(typeof(...ages))
Это не имеет смысла. typeof
говорит вам тип чего-то, а не много вещей.
Используйте цикл вместо оператора распространения, если вы хотите что-то сделать с каждым членом массива.
ages.forEach(member => { console.log(typeof member); });
console.log(typeof(...ages[1]));
Также не имеет смысла. ages[1]
это число 2. Это не повторяемый объект. Вы не можете распространять это. Если вы хотите тип этого элемента, просто:
console.log(typeof ages[1]);