У меня есть цикл foreach, где я создаю новый массив temp, а затем запускаю вложенный цикл foreach. Затем я пытаюсь получить доступ к массиву temp внутри вложенного цикла foreach, но он возвращается с ошибкой «переменная недоступна».Тип указателя foreach недоступен
let final = {
array: []
};
myArray.forEach(item =>
{
let newObject = { items: [] };
item.subArray.forEach(subItem =>
{
var subObject = { prop: subItem.prop };
// Error here: "newObject is not available"
newObject.items.push(subObject);
});
// Error here: "final is not available"
final.array.push(newObject);
});
Я знаю, что могу предоставить this
в массив, предоставляя его в качестве аргумента (например: item.subArray.forEach(subItem => {},
this
);
)
, но это не помогает мне, потому что tempArray не существует на класса.
У меня такая же проблема, когда я пытаюсь назначить массив темпа «окончательному» массиву, объявленному вне foreach.
Есть ли способ получить доступ к родительскому объекту изнутри foreach?
Следует отметить, что этот код существует внутри функции, определенной в классе. Я в основном пытаются агрегатных свойств с определенным значением внутри подмассива
Скриншот показывает вопрос: http://i.imgur.com/HWCz0Ed.png
(код виден на изображении находится в пределах первого forEach
цикла)
Обновление: Я понял, что это проблема между использованием let
и var
. Подробнее см. Мой ответ ниже.
это не делает то же самое первым. код в вашем сообщении будет хранить только последнее сопоставление. –
@TamasHegedus Да, справедливая точка. Я на самом деле использовал неправильный код в вопросе, я обновлю их как –