Вот что я пытаюсь сделать

CMP

<aura: attribute name= "list" type=CustomObj[]/>

Контроллер

var list = component.get("v.list");
var FinalList=[];
//iterating over list
for (var i in list){
If (list[i].Name==``){
FinalList.push(list[i]);
Console.log('Current Row', list[i]);// prints proxy {} in console.

}

}

Если условие выполнено, я просто хочу получить доступ к этой строке и вставить в другой атрибут, если тот же тип. Не знаю, что мне не хватает, но list[i] не дает мне строку, тогда как list[i].Field работает нормально. Нужна помощь. Спасибо

0
manjit5190 17 Мар 2020 в 23:42
 – 
The trailblazer
17 Мар 2020 в 23:38
Я не вижу ничего плохого в коде. Возможно, что вас интригует, так это то, почему прокси регистрируется. Это из-за службы шкафчиков. Подробнее читайте здесь developer.salesforce.com/ docs/atlas.en-us.lightning.meta/…. Вы можете получить доступ к элементам, как обычно, с помощью list[i].Name или любого другого атрибута, к которому вы хотите получить доступ. Если вы хотите, вы можете использовать цикл for i или цикл foreach.
 – 
manjit5190
17 Мар 2020 в 23:54
Лучший способ сделать это — использовать array.filter, чтобы сделать его более читабельным. developer.mozilla.org/en-US/ документы/Интернет/JavaScript/Справочник/…
 – 
manjit5190
17 Мар 2020 в 23:56

1 ответ

Вы можете узнать больше о прокси; это не останавливает ваш доступ, это просто немного раздражает отладку. Кроме того, более простой способ составить список будет следующим:

var finalList = component.get("v.list").filter(row=>(!!row.Name));
1
sfdcfox 17 Мар 2020 в 23:58