Select 只有一部分来自 JavaScript 中的数组对象
Select only some part from array objects in JavaScript
我有一个对象数组,我想得到一个新数组,其中的对象只有一些初始值。
var obj = [{
key1: 'someValue',
key2: 'someValue',
key3: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2',
key3: 'someValue2'
}]
我正在寻找类似于 Underscore 的 _.pluck
,但结果会给出不止一个值。
[{
key1: 'someValue',
key2: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2'
}]
使用 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
为数组中的每个条目调用一次回调,并根据回调中的 return 值构建一个新数组。所以在上面,我们 returning 新对象只有 key1
和 key2
.
(我将 obj
重命名为 initialArray
因为虽然数组 是 对象,但我想强调我们正在处理一个数组。)
如果object中有多个项目,而你想只保留几个项目,你可以使用pick
。
_.map(arr, o => _.pick(o, ['key1', 'key2']))
_.map(arr, o => _.omit(o, 'key3'))
我有一个对象数组,我想得到一个新数组,其中的对象只有一些初始值。
var obj = [{
key1: 'someValue',
key2: 'someValue',
key3: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2',
key3: 'someValue2'
}]
我正在寻找类似于 Underscore 的 _.pluck
,但结果会给出不止一个值。
[{
key1: 'someValue',
key2: 'someValue'
}, {
key1: 'someValue2',
key2: 'someValue2'
}]
使用 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
为数组中的每个条目调用一次回调,并根据回调中的 return 值构建一个新数组。所以在上面,我们 returning 新对象只有 key1
和 key2
.
(我将 obj
重命名为 initialArray
因为虽然数组 是 对象,但我想强调我们正在处理一个数组。)
如果object中有多个项目,而你想只保留几个项目,你可以使用pick
。
_.map(arr, o => _.pick(o, ['key1', 'key2']))
_.map(arr, o => _.omit(o, 'key3'))