Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下划线:从对象数组中删除所有键/值对_Javascript_Arrays_Underscore.js - Fatal编程技术网

Javascript 下划线:从对象数组中删除所有键/值对

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 },

是否有一种“智能”下划线方法可以从对象数组中删除所有键/值对

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 },
        { 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,但我不确定它是否适用于移动设备。