Мне нужно [1, 2, 3] перейти к ['123']. Я должен вернуть [1, 2, 3] к ['123'] при использовании функции стрелки (без регулярного выражения):
Должен быть использован:
const functionOne = (arrayOne) => {
};
console.info(functionOne([1, 2, 3]));
Итак, я попробовал следующее:
Сначала я создал строку. Это дало мне 1,2,3
Затем я убрал запятые, чтобы можно было соединить числа. Это дало мне 123.
Наконец, я попытался вернуть число в виде строки в массив, но это не сработало. Это дало мне ['1', '2', '3']
вместо ['123']
. Я думаю, что метод .split
неверен в моем коде, но я не могу найти другого (в настоящее время изучаю JavaScript).
const functionOne = (arrayOne) => {
let stepOne = arrayOne.toString(arrayOne => arrayOne.toString());
console.info(stepOne);
stepOne = stepOne.split(',').join('');
console.info(stepOne);
return stepOne.split('');
};
console.info(functionOne([1, 2, 3]));
Я присоединился к строке, чтобы удалить запятую. Итак, вместо жала 1,2,3 я получу строку 123.
Вы можете присоединиться к, используя ""
в качестве разделителя (он автоматически преобразует элементы в строки по мере создания выходной строки), а затем поместить результат в массив в качестве его единственного элемента ([____]
):
const functionOne = (array) => [array.join("")];
console.info(functionOne([1, 2, 3]));
Проблемы с вашим оригинальным подходом:
toString
полностью игнорирует аргумент, который вы ему даете, вместо этого используя поведение по умолчанию join(",")
.,
снова возвращает вам массив, но на этот раз строк.join('')
дает вам "123"
, но не помещает его в массив.@terpinmd - У меня сложилось впечатление, что ОП хочет создать для этого функцию (например, для повторного использования). Итак, первая линия делает это. Второй показывает, как используется функция. Но да, конечно, вы можете сделать это и встроенным.
const functionOne = (arrayOne) => {
let stepOne = arrayOne.toString();
stepOne = stepOne.split(',').join('');
return [stepOne];
};
console.info(functionOne([1, 2, 3]));
Метод .toString() преобразует массив [1, 2, 3] в строку «1,2,3», затем .split(',').join('') удаляет запятые и объединяет числа как одна строка "123". Наконец, верните [stepOne]; возвращает строку "123" внутри массива ['123'].
Нет необходимости создавать строку, затем создавать другой массив, а затем снова создавать строку. Посмотрите ответ CW, который я опубликовал несколько минут назад, все, что вам нужно, это [arrayOne.join("")]
.
На самом деле нет необходимости выполнять все шаги, и ваш ответ/код усовершенствован, но я попытался сделать код более понятным (imo), поскольку оператор упомянул, что они изучают javascript.
Спасибо TJ и Sylveon за вашу помощь. Я отметил, что нет необходимости выполнять шаги, которые я изначально заложил в свой код. [arrayOne.join("")]
позволяет напрямую вернуть [1, 2, 3] в ["123"]. Спасибо.
@Sylveon Я согласен. Совершенно очевидно, что ОП изучает js. Это всего лишь еще один вариант выполнения задачи.
Вы можете взять рекурсивную функцию.
const
fn = ([v, ...rest]) => rest.length
? [v + fn(rest)]
: [v];
console.info(fn([1, 2, 3]));
Да, но... зачем? :-)
я бы никогда, но я играл с принуждением к строке при добавлении массива.
Почему вы разделяете объединенную строку? Кроме того,
.toString(arrayOne => arrayOne.toString());
кажется излишним. Не могли бы вы использоватьreturn [arrayOne.join('')]
?