如何使用lodash在数组中插入特定索引?

时间:2019-03-20 05:35:03

标签: javascript lodash

我已经看过lodash文档,但是我不知道我需要使用什么函数来解决我的问题。我有数组

const arr = [
  {name: 'john'},
  {name: 'jane'},
  {name: 'saske'},
  {name: 'jake'},
  {name: 'baki'} 
]

我想在saske之前添加{name: 'ace'}。我知道javascript中的拼接,但是我想知道lodash是否可行。

3 个答案:

答案 0 :(得分:1)

当前lodash尚不具备此功能。您可以使用此备用

arr.splice(index, 0, item);

const arr = [{
    name: 'john'
  },
  {
    name: 'jane'
  },
  {
    name: 'saske'
  },
  {
    name: 'jake'
  },
  {
    name: 'baki'
  }
];

arr.splice(2, 0, {
  name: 'ace'
});

console.log(arr);

答案 1 :(得分:1)

您可以尝试以下操作:


const arr = [{
    name: 'john'
  },
  {
    name: 'jane'
  },
  {
    name: 'saske'
  },
  {
    name: 'jake'
  },
  {
    name: 'baki'
  }
]

const insert = (arr, index, newItem) => [
  ...arr.slice(0, index),

  newItem,

  ...arr.slice(index)
];

const newArr = insert(arr, 2, {
  name: 'ace'
});

console.log(newArr);

答案 2 :(得分:1)

lodash中不支持此类功能:see issue

如果您仍然希望使用lodash完成该操作,则可以按照这种方式进行操作。

fields = [{name: 'john'},
          {name: 'jane'},
          {name: 'saske'},
          {name: 'jake'},
          {name: 'baki'}
         ];

_.insert = function (arr, index, item) {
  arr.splice(index, 0, item);
};

_.insert(fields,2,{'name':'ace'});

console.log(fields);