Возврат модифицированного массива в строку предложения - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь отредактировать (для демонстрации) список слов, пропущенных чем-либо. После чего я хочу вернуться, когда я передал его обратно, но я застрял на том, как вернуть его как предложение из массива после редактирования. Ниже мой код

function funk(words){
  let arr = words.split(" ")
  arr.forEach((e) =>{
        console.log(`${e}...`);
        //returns in 2 lines but I want it same as I passed i.e. A sentence or string
  })
}

funk("hello world")

Ответы [ 3 ]

0 голосов
/ 22 марта 2019

После внесения изменений вы можете использовать return arr.join(" ")

0 голосов
/ 22 марта 2019

Вам нужно изменить ваш массив другим способом, например, используя функцию map . Вы можете использовать функцию join , чтобы присоединить ваш массив обратно. Взяв тот же код в качестве примера:

function funk(words){
  let arr = words.split(" ")
  arr = arr.map((e) =>{
    return e + "!"; // You can add any modification to the words of the array here
  })
  // This takes the already modified array and put it together separating its
  // elements by a space
  return arr.join(" ");
}

console.log(funk("hello world")) // Shows "hello! world!"
0 голосов
/ 22 марта 2019

Ваш вопрос говорит о возвращении массива в объединенную строку, но ваш комментарий говорит о выводе в той же строке. Мы все смущены тем, что вы хотите.

// After converting it, let's return it to a combined form
Array.prototype.back = function() {
    return this.join(' ').split('...').join('')
};
// Let's convert it to your format of ['Hello...', 'world...']
String.prototype.convert = function() {
    return this.split(' ').map(w => `${w}...`)
};

let b = 'Hello world'.convert();
let f = b.back();


console.log('Begin', b);
console.log('Final', f);

Выход

Begin [ 'Hello...', 'world...' ]
Final Hello world

И для той же строки, используя вашу функцию. Вы использовали forEach в цикле, поэтому он выйдет из консоли для каждого элемента в цикле. Вот почему это не было на одной линии. Например, Node.JS вы можете использовать process.stdout

function funk(words){
    let arr = words.split(" ")
    arr.forEach((e) =>{
        process.stdout.write(`${e}...`);
        // Will be one line
    })
    // Add this for trailing line console.log('\n');
}

Вывод (та же строка)

hello...world...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...