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)