作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含对象的数组。现在我想将数组切片为仅包含与某个属性值匹配的对象的新数组。
理想情况下,应该动态创建新的数组名称。
原始数组如下所示:
specificSlotButtonArray = [
{slotStarttime:"06:00:00", slotTimespan:1},
{slotStarttime:"09:00:00", slotTimespan:1},
{slotStarttime:"12:00:00", slotTimespan:2},
{slotStarttime:"15:00:00", slotTimespan:2},
{slotStarttime:"18:00:00", slotTimespan:3}
];
timespan1 = [
{slotStarttime:"06:00:00", slotTimespan:1},
{slotStarttime:"09:00:00", slotTimespan:1}
]
timespan2 = [
{slotStarttime:"12:00:00", slotTimespan:2},
{slotStarttime:"15:00:00", slotTimespan:2}
]
timespan3 = [
{slotStarttime:"18:00:00", slotTimespan:3}
]
reduce()
和
slice()
,但没有找到解决办法。
最佳答案
您可以使用 reduce
简单地实现您想要的结果。 ,因为您可以使用 reduce
生成对象,这是您如何做到的一个示例。
如您所见,它会检查对象上的相关属性是否为空,如果是,则将其设置为空数组,在此检查之后,只需将相关值推送到数组中即可,例如所以。
var array = [{
slotStarttime: "06:00:00",
slotTimespan: 1
},
{
slotStarttime: "09:00:00",
slotTimespan: 1
},
{
slotStarttime: "12:00:00",
slotTimespan: 2
},
{
slotStarttime: "15:00:00",
slotTimespan: 2
},
{
slotStarttime: "18:00:00",
slotTimespan: 3
}
];
var newObject = array.reduce(function(obj, value) {
var key = `timespan${value.slotTimespan}`;
if (obj[key] == null) obj[key] = [];
obj[key].push(value);
return obj;
}, {});
console.log(newObject);
关于Javascript:根据属性值将对象数组拆分为具有动态名称的单独数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54008878/
我是一名优秀的程序员,十分优秀!