gpt4 book ai didi

javascript - 使用下划线将整个对象转换/包装为新对象

转载 作者:行者123 更新时间:2023-12-03 08:28:38 25 4
gpt4 key购买 nike

下划线具有数组和函数的映射,但它们适用于单个项目,而不是整个事物。

所以假设我想在链接时改变对象的“形状”:

var result = _.chain(foo)
.pluck(...)
.stuff()
.moreStuff()
.TRANSFORMHERE() // <------ what step/steps here to wrap the object?
.evenMoreStuff()
.value();

所以类似:

{ a: 1, b: 2, c: 3, d: 4} 

{ foo: {a: 1, b: 2, c: 3, d: 4}, bar: "hello" }

没有链接就很容易。但是在链接时我可以采取哪些步骤来获取一个对象并将其作为属性包装在新对象中?

最佳答案

您想使用tap .

var result = _.chain(foo)
.pluck(...)
.stuff()
.moreStuff()
.tap(function(obj) {
obj.foo = { a : obj.a, b : obj.b, c : obj.c, d : obj.d };
obj.bar = "hello";

// Delete old keys
delete obj.a;
delete obj.b;
delete obj.c;
delete obj.d;
})
.evenMoreStuff()
.value();

并不是说你不能做这样的事情:

tap(function(obj) {
return {
a : obj.a,
...
bar : "hello"
};
});

tap的结果被下划线忽略。所以你必须直接修改对象。

关于javascript - 使用下划线将整个对象转换/包装为新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com