Javascript 下划线:从对象数组中删除所有键/值对
是否有一种“智能”下划线方法可以从对象数组中删除所有键/值对 e、 g.我有以下数组:Javascript 下划线:从对象数组中删除所有键/值对,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,是否有一种“智能”下划线方法可以从对象数组中删除所有键/值对 e、 g.我有以下数组: var arr = [ { q: "Lorem ipsum dolor sit.", c: false }, { q: "Provident perferendis veniam similique!", c: false }, { q: "Assumenda, commodi blanditiis deserunt?", c: true },
var arr = [
{ q: "Lorem ipsum dolor sit.", c: false },
{ q: "Provident perferendis veniam similique!", c: false },
{ q: "Assumenda, commodi blanditiis deserunt?", c: true },
{ q: "Iusto, dolores ea iste.", c: false },
];
我想得到以下信息:
var newArr = [
{ q: "Lorem ipsum dolor sit." },
{ q: "Provident perferendis veniam similique!" },
{ q: "Assumenda, commodi blanditiis deserunt?" },
{ q: "Iusto, dolores ea iste." },
];
我可以通过下面的JS实现这一点,但对我的解决方案并不满意:
for (var i = 0; i < arr.length; i++) {
delete arr[i].c;
};
for(变量i=0;i
非常感谢您的建议。您可以使用并结合使用排除特定属性,如:
var newArr = _.map(arr, function(o) { return _.omit(o, 'c'); });
var newArr = _.map(arr, function(o) { return _.pick(o, 'q'); });
或仅包括特定属性,如:
var newArr = _.map(arr, function(o) { return _.omit(o, 'c'); });
var newArr = _.map(arr, function(o) { return _.pick(o, 'q'); });
漏掉
_.map(arr, _.partial(_.omit, _, 'c'));
挑选
_.map(arr, _.partial(_.pick, _, 'q'));
打败我@User789如果想要相反的效果,也可以使用uu.pick:
var newArr=u.map(arr,函数(o){return uu.pick(o,'q');})
@User789,另外,如果您只是想要一个数组,您也可以使用pull方法:var newArr=uu.pull(arr,'q')
@mister_rampage-如果我知道从拔出
的方式得到的所有键名都是完美的。@User789我不确定,但我想拾取
名义上比省略
要快。这也可能取决于您正在处理的数据类型。但是,如果速度是一个大问题,那么像您已经编写的那种简单的旧JS解决方案可能是一个不错的选择。@User789您可能需要查看Lo-Dash.JS或Lazy.JS来比较性能。下划线将使用移动设备上浏览器的本机映射功能。我认为for-loops的性能会一直优于for-loops,但我不确定它是否适用于移动设备。