使用特定索引动态添加数组值?

时间:2018-11-05 12:46:44

标签: javascript jquery salesforce-lightning

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 个答案:

答案 0 :(得分:2)

要在Array中的指定索引处添加项目,可以使用“ 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)