我有一个对象数组,如下所示;
{
'data': [{
value: 1000,
year: 1990
},
{
value: 1001,
year: 1990
},
{
value: 1002,
year: 1990
},
{
value: 1003,
year: 1991
},
{
value: 1004,
year: 1991
}
]
}
我想把它转换成下面的对象
{
'1990': [{
value: 1000,
year: 1990
},
{
value: 1001,
year: 1990
},
{
value: 1002,
year: 1990
}],
'1991':[{
value: 1003,
year: 1991
},
{
value: 1004,
year: 1991
}
]
}
在Javascript或Angular 4中有没有同样的方法?
使用array#reduce函数迭代每个项,检查acculture对象是否不包含具有该键的属性,添加它,为它分配一个数组,然后将项推入其中。如果包含,只需推入该项。
const data = [{
value: 1000,
year: 1990
},
{
value: 1001,
year: 1990
},
{
value: 1002,
year: 1990
},
{
value: 1003,
year: 1991
},
{
value: 1004,
year: 1991
}
];
const mapped = data.reduce((acc, item) => {
if(!acc.hasOwnProperty(item.year)) {
acc[item.year] = [];
}
acc[item.year].push(item);
return acc;
}, {});
console.log(mapped);
我有这个: 我想要这个: 怎么做?谢了!
问题内容: 假设您有一个非常简单的数据结构: …并且您想将其中一些存储在javascript变量中。如我所见,您有三个选择: 如果您要存储(或希望可能拥有)多个“价值”部分(例如,增加他们的年龄等),显然第二或第三种选择是可行的,因此,为了论证,让我们假设在此结构中再也不需要任何数据值了。您选择哪一个,为什么? 编辑 :该示例现在显示最常见的情况:非顺序ID。 问题答案: 每个解决方案都有其用例。
我有两个数组:和。 数组中的示例值:。 数组中的值示例:。 我需要创建一个JavaScript对象,将数组中的所有项放在同一个对象中。例如
问题内容: 我想使用构造函数制作对象数组的深层副本。 但是,由于某种原因,我上面的内容不起作用。我有运行的自动化测试,但未通过这些测试。所以这里有一个错误,我不确定是什么。 问题答案: 您已实现的是 浅表 副本。要实现 深度 复制,您必须进行更改 一些事情,分配一个 副本 的到。您如何执行此操作取决于班级。可能的替代方法是: 复制构造函数: 工厂方法: 克隆: 笔记: 上面假设复制构造函数,工厂方
问题内容: 我正在研究PHP的转换机制,并且在将数组转换为对象时遇到了一个奇怪的情况 据我了解,PHP属性必须使用与PHP变量相同的规则声明。也就是说,有效的变量名称以字母或下划线开头,后跟任意数量的字母,数字或下划线。但是,上面的代码产生以下输出 当您尝试访问对象中的信息时,它真正变得很奇怪。 无论如何,是否可以获得对象中var_dump报告的信息,还是只是在请求生命周期的剩余时间内被锁定了?(
问题内容: 我想以jQuery或纯JavaScript的形式获取JavaScript对象的键作为数组。 有没有比这更详细的方法? 问题答案: 用途: 这是ES5的功能。这意味着它可以在所有现代浏览器中使用,但不能在旧版浏览器中使用。 ES5-shim有一个实现可以偷