toString не "читается"
function createPhoneNumber(numbers){
var one = one.toString(numbers[0]);
var two = two.toString(numbers[1]);
var three = three.toString(numbers[2]);
var four = four.toString(numbers[3]) ;
var five = five.toString(numbers[4]);
var six = six.toString(numbers[5]) ;
var seven = seven.toString(numbers[6]) ;
var eight = eight.toString(numbers[7]) ;
var nine = nine.toString(numbers[8]) ;
var ten = ten.toString(numbers[9]);
var f = "(" + one + two + three + ")";
return f + '' + four + five + six + "-" + seven + eight + nine + ten;
}
alert(createPhoneNumber(1,2,3,4,5,6,7,8,9,0))
Здесь просто надо вывести номер телефона.
Ответы (2 шт):
function createPhoneNumber() {
var one = "" + arguments[0];
var two = "" + arguments[1];
var three = "" + arguments[2];
var four = "" + arguments[3];
var five = "" + arguments[4];
var six = "" + arguments[5];
var seven = "" + arguments[6];
var eight = "" + arguments[7];
var nine = "" + arguments[8];
var ten = "" + arguments[9];
var f = "(" + one + two + three + ")";
return f + '' + four + five + six + "-" + seven + eight + nine + ten;
}
console.log(createPhoneNumber(1, 2, 3, 4, 5, 6, 7, 8, 9, 0))
var one = one.toString(numbers[0]); — При запуске фукнции, сперва создаются все переменные, объявленные через var (получая значение undefined) независимо от их места в коде. Потом код выполняется сверху вниз, должно сработать присваивание = one.toString(numbers[0]) — в этот момент one уже существует (undefined), получается ошибка Cannot read property 'toString' of undefined
Что-то близкое вашей функции можно получить так:
console.log(createPhoneNumber(1, 2, 3, 4, 5, 6, 7, 8, 9, 0))
function createPhoneNumber(...numbers) {
// Если без многоточия - надо через запятую в скобках указать 10 переменных.
var one = numbers[0].toString();
var two = numbers[1].toString();
var three = numbers[2].toString();
var four = numbers[3].toString();
var five = numbers[4].toString();
var six = numbers[5].toString();
var seven = numbers[6].toString();
var eight = numbers[7].toString();
var nine = numbers[8].toString();
var ten = numbers[9].toString();
var f = "(" + one + two + three + ")";
return f + '' + four + five + six + "-" + seven + eight + nine + ten;
}
Можно еще все аргументы завернуть в массив и приклеить элементы через join. Они и так превратятся в строку. А скобки и черточку вставить через Регулярные выражения:
console.log( createPhoneNumber(1,2,3,4,5,6,7,8,9,0) );
function createPhoneNumber(){
return [...arguments].join("").replace(/(\d{3})/, "($1)").replace(/\)(\d{3})/, ")$1-");
}
А еще лучше изначально передавать в функцию массив чисел, а не 10 аргументов.