как написать функцию, которая принимает 2 строки, и добавить их в начало соответствующих массивов - PullRequest
0 голосов
/ 23 октября 2018

У меня есть проблема, когда мне нужно написать функцию, которая принимает и автора и заголовок.Добавьте автора в начало массива авторов и один в начале массива заголовков, используя метод массива.Убедитесь, что вы вызываете функцию, чтобы фактически добавить 2 элемента в 2 соответствующих массива.В цикле перечислите в console.log список авторов и их названий.Подсказка: функция addToArrays (myAuthor, myTitle) {...}.

Я знаю, что простой способ заставить его работать правильно, выглядит следующим образом.

let authors = ['Ernest Hemingway', 'Charlotte Bronte', 'Louisa May Alcott', 'Charles Dickens'];

let titles = ['The Old Man and the Sea', 'Jane Eyre', 'Little Women', 'Oliver Twist'];

myAuthor = authors.unshift("Stephen King");
myTitle = titles.unshift("Tommyknockers");
console.log(authors, titles);

Это дает результатыправильный способ, которым я нуждаюсь в них.Однако, судя по всему, я не могу понять, как превратить это в функцию, которая задает вопрос.Я очень расстроен и чувствую себя очень глупо, не в состоянии понять это.Я пробовал несколько различных методов.

let authors = ['Ernest Hemingway', 'Charlotte Bronte', 'Louisa May Alcott', 'Charles Dickens'];

let titles = ['The Old Man and the Sea', 'Jane Eyre', 'Little Women', 'Oliver Twist'];

function addToArrays(myAuthor, myTitle) {
    let myAuthor = authors;
    let myTitle = titles;
    for (let i = 0; i < authors.length; i++){
        authors.unshift("Stephen King");
        for (let j = 0; i < titles.length; i++){
            titles.unshift("Tommyknockers");
        }
        return titles;
    }
    return authors;
    console.log(authors, titles);
}
console.log(addToArrays);

или

let authors = ['Ernest Hemingway', 'Charlotte Bronte', 'Louisa May Alcott', 'Charles Dickens'];

let titles = ['The Old Man and the Sea', 'Jane Eyre', 'Little Women', 'Oliver Twist'];

function addToArrays(myAuthor, myTitle) {
    let myAuthor = authors;
    let myTitle = titles;
    authors.unshift("Stephen King");
    titles.unshift("Tommyknockers");
    return titles;
    return authors;
    console.log(authors, titles);
}

Я просто не уверен, где я иду не так.Я уверен, что это что-то простое, что я делаю неправильно, не зная, что я делаю, это заставляет меня чувствовать, что я бросаю ярость.Любая помощь будет принята с благодарностью.Спасибо.

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Вы были довольно близки со второй попыткой, отредактированной для работы ниже (с объяснением):

const authors = ['Ernest Hemingway', 'Charlotte Bronte', 'Louisa May Alcott', 'Charles Dickens'];

const titles = ['The Old Man and the Sea', 'Jane Eyre', 'Little Women', 'Oliver Twist'];

function addToArrays(myAuthor, myTitle) {
    // let myAuthor = authors; // myAuthor is already a parameter, no need to redeclare it here
    // let myTitle = titles; // same for myTitle
    authors.unshift(myAuthor); // use 'Stephen King' that was passed into the function as myAuthor rather than hardcoding it
    titles.unshift(myTitle); // same for 'Tommyknockers'
    // return titles; // return should be placed at the end of the function (only one)
    // return authors; // multiple returns won't work
    console.log(authors, titles); // anything after a return statement is unreachable, that's why you didn't see your console.log earlier
    // when there's no return value in a function it implicitly returns undefined so you can imagine here: `return undefined;` but it's not needed
}

addToArrays('Stephen King', 'Tommyknockers'); // don't forget to actually call the function!
0 голосов
/ 23 октября 2018
let authors = ['Ernest Hemingway', 'Charlotte Bronte', 'Louisa May Alcott', 'Charles Dickens'];
let titles = ['The Old Man and the Sea', 'Jane Eyre', 'Little Women', 'Oliver Twist'];
function addToArrays(myAuthor, myTitle,authors,titles) {
Authors=authors.unshift(myAuthor); //add the first parameter to the 3rd parameter which is authors array
Titles=titles.unshift(myTitle); // add second parameter to 4th parameter which is title array
let returned={ // create object which hold authors and titles 
Authors:authors,
Titles:titles
}
return returned; // return this obj from the function
}
console.log(addToArrays('Stephen   King','Tommyknockers',authors,titles)); // to print the hole object
    console.log(addToArrays('Stephen   King','Tommyknockers',authors,titles).Authors); // to print the authors 
    console.log(addToArrays('Stephen   King','Tommyknockers',authors,titles).Titles); // to print the titles
0 голосов
/ 23 октября 2018

Похоже, вы должны просто обернуть свои unshift вызовы в функцию.Просто так:

function addToArrays(myAuthor, myTitle) {
  authors.unshift(myAuthor);
  titles.unshift(myTitle);
}

addToArrays('author', 'title');
console.log(authors, titles);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...