개체를 매핑하고 배열을 통해 실행합니다. 동일한 키가 있으면 해당 개체에 대해 개체를 만듭니다.배열에 특정 키 확장 개체가있는 경우 배열에 개체 넣기
나는 이제 그 사용자 객체를 배열로 푸시하기 전에 해당 사용자가 이미 해당 배열에 존재하는지 확인하고 싶습니다. 그렇다면 네 개의 객체로 날짜를 확장하면됩니다. 그렇지 않으면 객체를 배열로 밀어 넣습니다.
그러나 현재 결과는 빈 배열이며이 문제를 해결하는 방법을 모르겠습니다. 정확히 바이올린의 주석으로 언급 작동하지 않는 것 : 결과는 각 위해 userLogin 한 번만 존재와 객체를 포함하는 배열이
var allUser = [
{ "userLogin": "t.test" },
{ "userLogin": "a.test" },
{ "userLogin": "b.test" }
];
var userFound = ["t.test","a.test"]
var requestByRange = [{
"dateFrom": "2016-09-01",
"dateTo": "2016-09-13",
"userID": "13",
"userLogin": "t.test"
}, {
"dateFrom": "2016-09-09",
"dateTo": "2016-09-16",
"userID": "16",
"userLogin": "t.test"
}, {
"dateFrom": "2016-09-08",
"dateTo": "2016-09-23",
"userID": "16",
"userLogin": "a.test"
}];
var usersToDisplay = [];
if (userFound.length != 0 && requestByRange != undefined) {
allUser.map(function (value, index) {
for (var i = 0; i < userFound.length; i++) {
if (value.userLogin === userFound[i]) {
for(var key in requestByRange){
if(requestByRange.hasOwnProperty(key) && key.indexOf(value.userLogin) === -1){
//console.log("yipia")
//console.log(key)
//console.log(requestByRange[key].dateFrom)
//console.log(requestByRange[key].dateTo)
//console.log(value)
var userToDisplay = {
userLogin: value.userLogin,
dateFrom: [requestByRange[key].dateFrom],
dateTo: [requestByRange[key].dateTo]
}
/*
THE PART BELOW DOES NOT WORK!!!
If userToDisplay.userLogin is already in usersToDisplay
Push the dates in dateFrom and dateTo, otherwise
push the userToDisplay Object into the usersToDisplay array
Current output is an empty array
*/
console.log("--------------------------------------")
for(var usersKey in usersToDisplay){
console.log(usersToDisplay[usersKey])
if(usersToDisplay.hasOwnProperty(usersKey) && usersKey.indexOf(usersToDisplay.userLogin) === -1){
console.log("ja");
console.log(usersToDisplay[usersKey])
usersToDisplay[usersKey].dateFrom.push(userToDisplay.dateFrom)
usersToDisplay[usersKey].dateTo.push(userToDisplay.dateTo)
}else{
console.log("--------------------------------------")
usersToDisplay.push(userToDisplay);
}
}
}
}
}
}
});
}
console.log(usersToDisplay)
이 사용자에 속하는 해당 객체의 배열로 모두 dateFrom & dateTo
입니다.
var usersToDisplay = [
{
"dateFrom": ["2016-09-01", "2016-09-09"],
"dateTo": ["2016-09-13, "2016-09-16],
"userID": "16",
"userLogin": "t.test"
}
]
원하는 결과를 추가하시기 바랍니다. –
나는 평범한 설명이 아니라 문자 그대로를 추가하십시오. –
이 당신을 위해이 ok입니까? – BayLife