2017-07-26 23 views
0

私はnode.jsとJavaScriptを使い慣れていないので、この質問は非常に簡単かもしれませんが、わかりません。配列Node.jsの最後の項目を取得するには?

私は配列内にたくさんのアイテムを持っていますが、最後のアイテムだけを取得したいだけです。私はロダッシュを使用しようとしましたが、何とか配列の最後の項目を私に提供しません。

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)) : [] 
 

 
    } 
 
    }) 
 
})

答えて

4

あなたの問題は_.lastmapの中に使っていることです。これは、現在の項目の最後の文字を取得します。あなたは実際のArrayの最後の要素を取得したいと思います。

pop()でこれを行うことができますが、それは破壊的であることに注意してください(は最後の項目を配列から削除します)。

非破壊バニラ溶液:lodash

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

または、:

_.last(event.images); 
+0

わかりました、それは意味があります。しかし、私はイベントの中で結果を得るために私はそれについて行く方法ToBeInserted? –

1

使用.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

+0

これはしかし項目を削除しますので、彼はいけません。 – NikxDa

+0

@NikxDaが正しい。それを痛感しませんでした。指してくれてありがとう。 – Ved

-1

Array.prototype.popは配列の最後の要素を取得しているが、それはまた、アレイからこの要素を削除します。だから、1はArray.prototype.sliceArray.prototype.popを結合する必要があります

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

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

downvoteに関するコメントはありますか? :) –

+0

私はこれをしました: 'images:!! event.images?イベント型の画像。image.url.slice(-1).pop()):[] 'しかし、今は' TypeError:image.url.slice(...)というエラーが出ます。機能ではない。それが何を意味するのか分かりませんか? –

+0

@BjarkeAndersen、おそらくそれは 'event.images'配列の形式が間違っているためです。 'image.url'も配列であることを確認してください。私はあなたのための少しの実例を準備しました:https://jsfiddle.net/enzam28p/ –

関連する問題