当前位置: 首页 > 知识库问答 >
问题:

从数组[复制]获取适当的对象

解晟睿
2023-03-14

我创建了一个如下数组:

arrayObject = [{one: "1", two: "2", three: "3", four: "4", five: "5"}, 
               {one: "1", two: "2", three: "3", four: "4", five: "5"}];

如何获取/过滤该数组,使其仅具有“1”、“2”和“5”元素,如下所示:

arrayObject = [{one: "1", two: "2", five: "5"}, 
               {one: "1", two: "2",  five: "5"}];

最好的方法是什么?

共有3个答案

林英武
2023-03-14

你可以像下面这样映射和使用传播

js lang-js prettyprint-override">arrayObject = [{one: "1", two: "2", three: "3", four: "4", five: "5"}, 
               {one: "1", two: "2", three: "3", four: "4", five: "5"}];
               
let filtered=arrayObject.map(a=>{

  const {three,four,...rest}=a;
  return rest;
});
console.log(filtered);
陆光济
2023-03-14
function extractObjectWithKeys(objects, keys) {
  return objects.reduce((acc, elem) => {
    let newObj = {};
    let filteredKeys = Object.keys(elem).filter(k => keys.includes(k));
    filteredKeys.forEach(key => {
      newObj[key] = elem[key];
    });
    return acc.concat(newObj);
  }, []);
}

const arrayObject = [
  {one: "1", two: "2", three: "3", four: "4", five: "5"}, 
  {one: "1", two: "2", three: "3", four: "4", five: "5"}
];

//Usage:
extractObjectWithKeys(arrayObject, ["one", "two", "five"])
鲁俊友
2023-03-14

你可以只映射想要的属性,然后从变量中解构一个新对象。

var array = [{ one: "1", two: "2", three: "3", four: "4", five: "5" }, { one: "1", two: "2", three: "3", four: "4", five: "5" }],
    result = array.map(({ one, two, five }) => ({ one, two, five }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
 类似资料:
  • 我有这个初始数组,希望根据和提取重复航班 我写了这个,但我只能得到第一个重复的,看起来不是很漂亮。 有什么建议吗?

  • 我有个简单的课 我创建了这个类的样本对象的ArrayList 这里没有显示我后来如何填充对象的其他字段(名称,地址等) 有没有一种方法可以使用字母数字字符串id快速检索其中一个对象,而无需遍历整个列表?(没有实现数据库层) 差不多

  • 如何从对象获取数组?我试图进入空数组,这样我就可以验证它的空状态。 输出

  • 问题内容: 有一个叫的课程。 而且我有一系列对象。我现在需要将数组中所有这些对象的s 提取到新数组中。 我也发现了类似的问题。但是它在Objective-C中,因此可以用来完成此任务。 如何在Swift中执行此操作? 问题答案: 您可以使用方法,将某种类型的数组转换为另一种类型的数组-在您的情况下,从的数组转换为的数组:

  • 有一个名为的类。 并且我有一个对象的数组。我现在需要的是将该数组中所有对象的s提取到一个新数组中。 我也发现了这个类似的问题。但是它是在Objective-C中的,所以它使用来实现这一点。 我怎么能在斯威夫特做到这一点呢?

  • 我有一个对象只包括一个数组(17)。我想从这个数组中得到特定的值,例如 时,我得到: 最后,在调用this.flights['states'][0][4]时,我收到一个错误: 正在启动我从Opensky网络Api获取的flights对象: