我有一个对象数组,我希望得到一个包含一些初始值的对象的新数组。
var obj = [{
key1: 'someValue',
key2: 'someValue',
key3: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2',
key3: 'someValue2'
}]
我看起来像是Underscore的_.pluck
,但是不止一个值会给我带来结果。
[{
key1: 'someValue',
key2: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2'
}]
答案 0 :(得分:2)
如果对象中有多个项目,并且您只想保留少量项目,则可以使用pick
。
_.map(arr, o => _.omit(o, 'key3'))
$(document).ready(function(){
$("#hide").click(function(){$(".block").hide();});
$("#show").click(function(){$(".block").show();});
});
答案 1 :(得分:0)
使用JavaScript的内置map
:
使用ES2015箭头功能:
var newArray = initialArray.map(e => ({key1: e.key1, key2: e.key2}));
var initialArray = [
{key1: 'someValue', key2: 'someValue', key3: 'someValue'},
{key1: 'someValue2', key2: 'someValue2', key3: 'someValue2'}
];
var newArray = initialArray.map(e => ({key1: e.key1, key2: e.key2}));
document.body.innerHTML = "<pre>" + JSON.stringify(newArray, null, 2) + "</pre>";
使用旧式功能:
var newArray = initialArray.map(function(entry) {
return {key1: entry.key1, key2: entry.key2};
});
var initialArray = [
{key1: 'someValue', key2: 'someValue', key3: 'someValue'},
{key1: 'someValue2', key2: 'someValue2', key3: 'someValue2'}
];
var newArray = initialArray.map(function(entry) {
return {key1: entry.key1, key2: entry.key2};
});
document.body.innerHTML = "<pre>" + JSON.stringify(newArray, null, 2) + "</pre>";
map
为数组中的每个条目调用一次回调,并从回调中返回的值中构建一个新数组。因此,在上文中,我们仅使用key1
和key2
返回新对象。
(我将obj
重命名为initialArray
,因为虽然数组是对象,但我想强调我们正在处理数组。)