對象使用LoDash一個對象映射過來:不包括在地圖中的JavaScript
_.map(items, (item) = > {
if (Array.isArray(item)) {
// don't include this in final object
}
return _.assign({
foo: "bar"
}, item);
});
想知道我的最好的策略是不包括在返回的,映射對象的對象,如果當前對象數組?
對象使用LoDash一個對象映射過來:不包括在地圖中的JavaScript
_.map(items, (item) = > {
if (Array.isArray(item)) {
// don't include this in final object
}
return _.assign({
foo: "bar"
}, item);
});
想知道我的最好的策略是不包括在返回的,映射對象的對象,如果當前對象數組?
您可以使用reduce
這完全適用於您的情況:
var items = [{a: 1}, ["asd"], {b: 2}];
var result = _.reduce(items, (res, item) => {
if (!Array.isArray(item)) {
_.assign(res, item);
}
return res;
}, {foo: "bar"});
見jsbin。
這...只是分配一個空對象,如果項目是一個數組,以其他方式轉讓項目:
_.map(items, (item) = > {
return _.assign({
foo: "bar"
}, Array.isArray(item)?{}:item);
});
這裏有沒有新的匿名函數的語法有點小提琴:https://jsfiddle.net/xurm6vrr/1/
是真的,但不是數組將保留在映射對象中的項嗎? – benhowdle89
@Robert我認爲這只是避免設置'foo'屬性,該項目不會在'map'的輸出中刪除。 – Halcyon
@Halcyon,我誤讀了!修正它,我想。 –
我期望一個map
函數始終輸出與輸入相同的密鑰。這些值可能會修改,但密鑰保持不變。
還有其他功能可以用來更改一組項目,如filter
或某種aggregate
或reduce
。
這很好,我喜歡這個。 – benhowdle89