我有以下幾點:如何使用lodash _.forEach實現.forEach本地?
var new = {};
old.forEach(function (u) { new[u.id] = u.name; });
有人能向我解釋,我怎麼能使用隨lodash的_.forEach實現這一點。
我有以下幾點:如何使用lodash _.forEach實現.forEach本地?
var new = {};
old.forEach(function (u) { new[u.id] = u.name; });
有人能向我解釋,我怎麼能使用隨lodash的_.forEach實現這一點。
我想lodash總是產生的輸出,我不得不使用它。
不,這真的取決於功能。 _.forEach
只是迭代集合的元素。儘管它確實返回一個值,它只是您作爲第一個參數傳遞的集合。
所以我想這將是更喜歡:
var new = _.foreach(..
有沒有辦法做到這一點還是我總是需要做new[u.id}
?
你可以使用_.reduce
,雖然我個人並不覺得比你的版本更具可讀性,因爲其目的不清晰:
var newObj = _.reduce(old, function(obj, v) {
obj[v.id] = v.name;
return obj; // or in one line: return obj[v.id] = v.name, obj;
}, {});
理想情況下,你會使用類似_.map
,這使得意圖要清楚得多,但是你不能從一個數組映射到一個對象,並且你不能從一個對象映射到一個含有lodash的對象(就像它看起來那樣)。
有'_.zipObject':HTTP ://stackoverflow.com/questions/21450360/how-can-i-make-a-callback-function-in-the-lodash-foreach-populate-an-array/21451310#21451310 – phadej
非常簡單:'_.forEach(舊,函數(U){新[u.id] = u.name;});'。你在文檔中不理解的是什麼? http://lodash.com/docs#forEach –
@Felix - 我認爲lodash總是產生一個輸出,我將不得不使用它。所以我想這將是更喜歡的:var新= _.foreach(..有沒有辦法做到這一點還是我總是需要做新的[u.id] –