相关疑难解决方法(0)

如何获取javascript对象属性的子集

说我有一个对象:

elmo = { 
  color: 'red',
  annoying: true,
  height: 'unknown',
  meta: { one: '1', two: '2'}
};
Run Code Online (Sandbox Code Playgroud)

我想用一个属性的子集创建一个新对象.

 // pseudo code
 subset = elmo.slice('color', 'height')

 //=> { color: 'red', height: 'unknown' }
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这个目标?

javascript

349
推荐指数
17
解决办法
15万
查看次数

从数组中的所有对象中删除键

我有以下对象数组:

[{id:1, value:"100", name:"dog" ...},
{id:2, value:"200", name:"cat" ...},
{id:3, value:"300", name:"fish"....},
{id:4, value:"400", name:"mouse" ...},
{id:5, value:"500", name:"snake"...}]
Run Code Online (Sandbox Code Playgroud)

我想过滤对象数组并只保留两个键,idvalue得到这样的东西:

[{id:1, value:"100"},
{id:2, value:"200"},
{id:3, value:"300"},
{id:4, value:"400"},
{id:5, value:"500"}]
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用for循环遍历对象数组,并push()使用新变量执行到空数组.有更简单的方法吗?

我想使用Lodash,_.pluck(PetList, 'id', 'value');但lodash仅提取值,而不是关键.

javascript arrays object ecmascript-6

3
推荐指数
2
解决办法
5206
查看次数

在Javascript中从不在数组中的对象中删除键

假设我有一个包含许多键的对象列表,我只想保留其中的某些键。这就是我的做法。

SO 上其他好的解决方案的问题是,如果键中不存在键以保持它仍然添加一个键,值未定义的值。

let data = [{
   'a': 1,
   'b': 2,
   'c': 3
 }, 
 {
   'a': 1,
   'c': 3,
   'd': 4
 }]

const keys_to_keep = ['a', 'b']

data = data.map((obj) => {
  Object.keys(obj).forEach(function(key) {
    if(!keys_to_keep.includes(key))
      delete obj[key]
  });
  return obj;
})
Run Code Online (Sandbox Code Playgroud)

输出 :

[ { a: 1, b: 2 }, { a: 1} ]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来完成这项工作。任何帮助表示赞赏。

javascript node.js

2
推荐指数
1
解决办法
480
查看次数

javascript从数组中的所有对象中提取某些属性

我有一组具有相同属性的对象.每个对象有大约一百个属性.我想在一个新的数组中只保留少数几个:

var dummyArray = [{ "att1": "something", "att2": "something", ..., "att100": "something"}, { "att1": "something", "att2": "something", ..., "att100": "something"}, ...];
Run Code Online (Sandbox Code Playgroud)

如何过滤/映射/缩小...并提取有趣的键?

const newDummArray = dummyArray.map(function(item) { 
    delete item.att1; 
    delete item.att3; 
    delete item.att15;
    // ... (long list)
    return item; 
});
Run Code Online (Sandbox Code Playgroud)

我怎么能只保留att20,att30,att70,att80为每个对象,并删除其余?

javascript arrays ecmascript-6

1
推荐指数
4
解决办法
1249
查看次数

如何使用 JavaScript 删除数组中对象的另一个键?

我有一个与下面相同的数组对象,我只想得到 3 个键idtokenname的结果:

[
 {
  id:1,
  token: 'xyz',
  name: 'john',
  _v: 2,
  _isActived: true,
  _isBlocked: false,
  ...
 },
 {
  id: 2,
  token: 'abc',
  name: 'thomas',
  _v: 2,
  _isActived: true,
  _isBlocked: false,
  ...
 },
 ...
]
Run Code Online (Sandbox Code Playgroud)

我想要的结果:

[
 {
  id:1,
  token: 'xyz',
  name: 'john'
 },
 {
  id:2,
  token: 'abc',
  name: 'thomas'
 },
 ...
]
Run Code Online (Sandbox Code Playgroud)

谁能帮帮我啊!

javascript arrays

1
推荐指数
1
解决办法
555
查看次数

动态地将列推入新数组

我有一个清单

let data = [{order: 1, plannedid:32, userid:123 },
            {order: 2, plannedid:33, userid:124 }];
let keys = ['orderid','plannerid'];
Run Code Online (Sandbox Code Playgroud)

根据我们需要从数组中获取所有列的键。

我可以使用以下代码按预期获取数据,

let tempData =[];
 data.forEach(function(d) {
            tempData.push({
              orderid: d.orderid,
              plannerid: d.plannerid
            });
          });
Run Code Online (Sandbox Code Playgroud)

输出:

[{order: 1, plannedid:32},
{order: 2, plannedid:33 }];
Run Code Online (Sandbox Code Playgroud)

但如果我的键数组是动态的,我们如何根据键读取

ex: let keys = ['orderid','userid'];
Run Code Online (Sandbox Code Playgroud)

我们可以在 Push 函数中添加条件吗

javascript

1
推荐指数
1
解决办法
100
查看次数

标签 统计

javascript ×6

arrays ×3

ecmascript-6 ×2

node.js ×1

object ×1