如何获取数组Node.js中的最后一项?

时间:2017-07-26 10:16:22

标签: javascript arrays node.js

我是node.js和JavaScript的新手,所以这个问题可能很简单,但我无法弄清楚。

我在阵列中有很多项目,但只想获得最后一项。我试图使用lodash,但它不知道我没有提供数组中的最后一项。

我的阵列现在看起来像这样:

images : ['jpg.item_1', 'jpg.item_2', 'jpg.item_3', ..., 'jpg.item_n']

我希望得到:

images : 'jpg.item_n'

使用lodash我得到了:

images : ['g.item_1', 'g.item_2', 'g.item_n']

看起来我刚刚收到jpg的最后一封信,即' g'。

我使用lodash的代码如下所示:



const _ = require('lodash');

return getEvents().then(rawEvents => {

  const eventsToBeInserted = rawEvents.map(event => {
    return {

      images: !!event.images ? event.images.map(image => _.last(image.url)) : []

    }
  })
})




3 个答案:

答案 0 :(得分:14)

您的问题是您在_.last内使用map。这将获得当前项目中的最后一个字符。您想获得实际Array的最后一个元素。

您可以使用pop()执行此操作,但应注意它是破坏性的(将删除数组中的最后一项)。

非破坏性香草溶液:

var arr = ['thing1', 'thing2'];
console.log(arr[arr.length-1]); // 'thing2'

或者lodash

_.last(event.images);

答案 1 :(得分:2)

使用.pop()数组方法



var images  =  ['jpg.item_1', 'jpg.item_2', 'jpg.item_3', 'jpg.item_n'];

var index= images.length - 1; //Last index of array
console.log(images[index]);

//or,

console.log(images.pop())// it will remove the last item from array




答案 2 :(得分:0)

虽然Array.prototype.pop检索数组的最后一个元素,但也会从数组中删除此元素。因此,应将Array.prototype.popArray.prototype.slice结合使用:

var images  =  ['jpg.item_1', 'jpg.item_2', 'jpg.item_3', 'jpg.item_n'];

console.log(images.slice(-1).pop());