问题描述
我只想合并其中一个属性的对象,还想在输出中添加缺少的 Days名称。
Take this for an example:
var array = [
{
"heure1": "14:00","heure2": "17:00","day": "Sunday",},{
"heure1": "08:00","heure2": "13:00",{
"heure1": "14:00","heure2": "16:00","day": "Monday","heure2": "18:00",];
预期结果:
var array = [
{
"heure": ["14:00","17:00","08:00","13:00"],{
"heure": ["14:00","16:00","18:00"],{
"heure": [],"day": "Saturday","day": "Friday","day": "Thursday","day": "Wednesday","day": "Tuesday",];
我也在尝试一些堆栈溢出的答案,但是没有成功:-( 一天的剂量无关紧要。 预先感谢。
解决方法
您可以首先在一周的7天中创建7个条目,每个条目的ENV HTTP_PROXY="http://10.10.10.10:8000"
ENV HTTPS_PROXY="http://10.10.10.10:1212"
属性都有一个空数组。
然后迭代原始数据,查找正确的条目,然后将其两次推入heure
数组。
请注意,您的heure
属性在示例输入(DAY,DAY)中具有不同的拼写。我强烈建议对此类属性名称使用所有小写字母。
这是一个实现:
Day
,
我的方式...
var arr_1 =
[ { heure1: '14:00',heure2: '17:00',day: 'Sunday' },{ heure1: '08:00',heure2: '13:00',{ heure1: '14:00',heure2: '16:00',day: 'Monday' },heure2: '18:00',day: 'Monday' }
]
const days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
const res = days.map(d=>
{
let r = { heure:[],day:d }
arr_1.filter(x=>x.day===d)
.forEach(({heure1,heure2})=> { r.heure.push(heure1,heure2) })
r.heure.sort()
return r
})
console.log( res )
.as-console-wrapper { max-height: 100% !important; top: 0; }
,
我的尝试
<script>
var array = [{
"heure1": "14:00","heure2": "17:00","DAY": "Sunday",},{
"heure1": "08:00","heure2": "13:00",{
"heure1": "14:00","heure2": "16:00","DAY": "Monday","heure2": "18:00",];
var days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Sunday","Saturday"];
var result = [];
days.map(function (day) {
var daysInArray = array.filter(function (a) {
return day == a.DAY
})
// console.log(daysInArray);
if (daysInArray.length) {
time = [];
daysInArray.map(function (item,i) {
for (var key in item) {
if (daysInArray[0].hasOwnProperty(key) && key != "DAY") {
time.push(item[key])
}
}
})
result.push({
"day": day,"heure": time
})
} else {
result.push({
"day": day,"heure": []
})
}
})
console.log(result);
</script>
,
该结果结构是否必要?
如果没有,请修改结果结构,您可以执行以下操作:
const getHeureByDay = (heureArray) => {
let result = {
Sunday: { heure: [] },Monday: { heure: [] },Tuesday: { heure: [] },Wednesday: { heure: [] },Thursday: { heure: [] },Friday: { heure: [] },Saturday: { heure: [] },};
heureArray.forEach((heureItem) => {
Object.keys(heureItem).forEach((key) => {
if (key !== "day") {
result[heureItem.day].heure.push(heureItem[key]);
}
})
});
return result;
};
const heureArray = [
{
"heure1": "14:00","day": "Sunday",{
"heure1": "08:00",{
"heure1": "14:00","day": "Monday",}
];
console.log(getHeureByDay(heureArray));