Я продолжаю получать ошибки неопределенных, используя метод карты - PullRequest
1 голос
/ 27 сентября 2019

Я хочу изменить массив ing с помощью метода map на newIng, где я изменил единицы измерения.

const unitsLong = ['tablespoons', 'tablespoon', 'ounces', 'ounce', 'teaspoons', 'teaspoon', 'cups', 'pounds'];
const unitsShort = ['tbsp', 'tbsp', 'oz', 'oz', 'tsp', 'tsp', 'cup', 'pound'];

let ing = [
"8 ounces cream cheese, softened",
"1/4 teaspoon garlic powder",
" teaspoon dried oregano",
" teaspoon dried parsley",
" teaspoon dried basil",
"1 cups shredded mozzarella cheese",
"1 cups parmesan cheese",
"1 cups pizza sauce",
"1/4 cups chopped green bell pepper",
"1/4 cups chopped onion",
"2 ounces sliced pepperoni"
];

const newIng = ing.map(el => {
  unitsLong.forEach((unit, i) => {
    el = el.replace(unit, unitsShort[i]);
    });

});

console.log(newIng);

Мой ожидаемый результат будет таким же массивом, где единицы сокращены.Спасибо!

1 Ответ

1 голос
/ 27 сентября 2019

Помимо отсутствующего return statememt, вы можете уменьшить массив и принять измененную строку в качестве аккумулятора.

var unitsLong = ['tablespoons', 'tablespoon', 'ounces', 'ounce', 'teaspoons', 'teaspoon', 'cups', 'pounds'],
    unitsShort = ['tbsp', 'tbsp', 'oz', 'oz', 'tsp', 'tsp', 'cup', 'pound'],
    ing = ["8 ounces cream cheese, softened", "1/4 teaspoon garlic powder", " teaspoon dried oregano", " teaspoon dried parsley", " teaspoon dried basil", "1 cups shredded mozzarella cheese", "1 cups parmesan cheese", "1 cups pizza sauce", "1/4 cups chopped green bell pepper", "1/4 cups chopped onion", "2 ounces sliced pepperoni"],
    newIng = ing.map(el => unitsLong.reduce((s, unit, i) => s.replace(unit, unitsShort[i]), el));

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