Добавить значение массива динамически с определенным индексом?

createObjectDataadd: function(component, event) {
    var index = event.getParam("indexVar");
    console.log(index);

    var RowItemList1 = component.get("v.QuotelinitemList"); 
     RowItemList1.push({
        'sobjectType': 'Quote_Line_Item__c',
        'Name':'',
        'Client_P_N__c': ''
         });
     RowItemList1.splice(index+1,0,RowItemList1); 

    //  for (var i = index; i <RowItemList1.length; i++) { 
    //  RowItemList1.splice(index+1,0,rowli); 
    //    }              
    component.set("v.QuotelinitemList", RowItemList1);
    //RowItemList1.splice(index-1,0,RowItemList1); 
},

Quote_Line_Item__c является объектом. Предположим, у него есть три записи. Каждая запись имеет значение индекса. У каждой записи есть кнопка новой кнопки quote_line_item, на которую она нажимает новую запись строки цитаты в конце массива.

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

Я пробовал много способов, но это не идет.

1 ответ

Решение

Для добавления элемента по указанному индексу в массиве вы можете использовать " Array.splice ", как показано ниже. Он принимает 3 аргумента: индекс, количество элементов, которые нужно удалить из этого индекса, новые значения для добавления. Итак, уловка в том, что вы можете передать 0 в качестве второго аргумента, что означает, что вы не хотите удалять какой-либо элемент

let arr = [1,2,3,4]

function addItem(item, index) {
  arr.splice(index, 0, item)
}

addItem(10, 1)
console.log(arr)

Другие вопросы по тегам