我有一个这样的对象数组:
const arr = [
{"id" : 1, "name" : "john", "age": 12, "fruits": "banana"},
{"id" : 2, "name" : "john", "age": 12, "fruits": "apple"}
{"id" : 3, "name" : "maria", "age": 13, "fruits": "grappes"}
{"id" : 4, "name" : "maria", "age": 13, "fruits": "blackberry"}
{"id" : 5, "name" : "camille", "age": 12, "fruits": "cherry"}
]
我希望每个人(名字)都有一个对象,并添加他们的对象。
因此,最终阵列将是:
const arr = [
{"id" : 1, "name" : "john", "age": 12, "fruits": ["banana", "apple"]},
{"id" : 3, "name" : "maria", "age": 13, "fruits": ["grappes", "blackberry"]}
{"id" : 5, "name" : "camille", "age": 12, "fruits": ["cherry"]}
];
我使用的真正数组非常大,这就是为什么我正在寻找最有效的方法。
可以使用数组。原型减少以对对象进行分组。
js lang-js prettyprint-override">const arr = [
{ id: 1, name: "john", age: 12, fruits: "banana" },
{ id: 2, name: "john", age: 12, fruits: "apple" },
{ id: 3, name: "maria", age: 13, fruits: "grappes" },
{ id: 4, name: "maria", age: 13, fruits: "blackberry" },
{ id: 5, name: "camille", age: 12, fruits: "cherry" },
];
const output = Object.values(
arr.reduce((res, o) => {
if (!res[o.name]) {
res[o.name] = { ...o, fruits: [] };
}
res[o.name].fruits.push(o.fruits);
return res;
}, {})
);
console.log(output);
问题内容: 我有一个对象数组,希望根据特定的对象对进行修剪。我想创建一个数组,此特定对仅包含一个对象。将重复项的哪个对象复制到新数组并不重要。 例如,我要基于的属性进行修整,创建一个仅包含每个值之一的新数组: 会成为: 是否存在会循环执行此操作的JavaScript或Angular函数? 编辑:要筛选的属性嵌套在另一个属性中。 问题答案: 您可以为此使用下划线:
我有这两个类,它们都有一个项目列表,我试图返回一个新对象“ItemWithDiscount”,它具有这两个类的属性,这在服务/控制器申请中。我尝试用流映射它们,但没能做到。谁能给我一个简单的方法来做这件事吗?
如何处理对象的javascript数组,例如: 并通过求和这些值合并重复的键。为了得到这样的东西: 我尝试过迭代并添加到一个新数组中,但这没有起到作用:
这里有几个关于如何检查对象中是否存在属性的答案。 我一直在使用 但我想知道这和
假设我们有一个这样定义的对象A: 出于某种原因,我需要创建第二个对象B,它只具有对象A的前两个属性: 所以我的问题是:将对象A复制到对象B的最佳方法是什么?我一直在逐个复制获取者和设置者的属性,但有些事情告诉我一定有更好的方法来做到这一点!特别是当对象将具有很多属性时,我必须编写一行又一行的代码,只是为了将它们全部复制到第二个对象B... 多谢了:) 编辑:我一直被一个“另一个问题的可能重复”提醒
我想建立一个本体模型,在那里我可以表示一个实体的缺失,可以这么说。例如,我希望有Rain和No_Rain,我将它们定义为不相交类。在此之后,我有了object属性has_rain。我想以某种方式能够推理出,对于同一个人来说,不可能同时拥有has_rain(雨)和has_rain(无雨)我已经搜索了很多,但是没有找到我问题的答案。也许我在什么地方错过了。对不起,如果我没有解释好一切,这是我的第一个问