簡體   English   中英

lodash在數組的每個對象中分配一個字段

[英]lodash assign a field in each object in array

我有一個包含很多對象的數組,看起來像這樣:

obj = {name: 'Hello', isUpdated:false};

現在,我希望使用lodash將所有isUpdated變量從false分配給true

我一直在看他們的文檔,發現:

_.assignIn(object, [sources])

但是,我不太確定這是我所需要的。 也許我需要結合兩種不同的方法?

我希望你們中的某些人可能知道,謝謝。

如果您不想改變源數組,則可以將_.assign()_.map()一起使用。

var result = _.map(array, v => _.assign({}, v, { isUpdated: true }));

 var array = [{ name: 'hoo', isUpdated: false }, { name: 'yeah', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'yeahv', isUpdated: false }]; var result = _.map(array, v => _.assign({}, v, { isUpdated: true })); document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>'); 
 <script src="https://cdn.jsdelivr.net/lodash/4.13.1/lodash.min.js"></script> 


普通的JS替代方法是將Array.prototype.map()Object.assign()一起使用

var result = array.map(v => Object.assign({}, v, { isUpdated: true }));

 var array = [{ name: 'hoo', isUpdated: false }, { name: 'yeah', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'Hello', isUpdated: false }, { name: 'yeahv', isUpdated: false }]; var result = array.map(v => Object.assign({}, v, { isUpdated: true })); document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>'); 

正如@Tushar在他的評論中所說,如果您使用的是相當現代的瀏覽器,則實際上並不需要Lodash,該數組對象具有它自己的map函數即可解決問題(Lodash iirc如果存在則在幕后使用它)。

無論如何,要回答Lodash的問題,我也將使用_.map()

_.map(arr, (o) => { o.isUpdated = true; return o});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM