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

Ben*_*sen 4 javascript arrays node.js

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

我在数组中有很多项目,但只想得到最后一项.我试图使用lodash但它不知何故不提供我在数组中的最后一项.

我的数组现在看起来像这样:

images : ['jpg.item_1', 'jpg.item_2', 'jpg.item_3', ..., 'jpg.item_n']
Run Code Online (Sandbox Code Playgroud)

我想得到:

images : 'jpg.item_n'
Run Code Online (Sandbox Code Playgroud)

使用lodash我得到:

images : ['g.item_1', 'g.item_2', 'g.item_n']
Run Code Online (Sandbox Code Playgroud)

看起来我只是在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)) : []

    }
  })
})
Run Code Online (Sandbox Code Playgroud)

psi*_*bin 17

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

你可以这样做pop(),但应该注意它是破坏性的(将删除数组中的最后一项).

非破坏性香草溶液:

var arr = ['thing1', 'thing2'];
console.log(arr[arr.length-1]); // 'thing2'
Run Code Online (Sandbox Code Playgroud)

或者,用lodash:

_.last(event.images);
Run Code Online (Sandbox Code Playgroud)