JavaScript
'use strict';
var attendance ={
"obj1":{"date":"2015-01-01","name":"tanaka","出勤":"09:00:00","退勤":"18:00:00"},
"obj2":{"date":"2015-01-01","name":"kimura","出勤":"10:00:00","退勤":"20:00:00"},
"obj3":{"date":"2015-01-02","name":"tanaka","出勤":"09:00:00","退勤":"18:00:00"},
"obj4":{"date":"2015-01-02","name":"kimura","出勤":"10:00:00","退勤":"20:00:00"}
};
var data ={
"data1":{"date":"2015-01-01","name":"tanaka","vehicle":"car", "staff":{"id":"01","dep":"sales"}},
"data2":{"date":"2015-01-01","name":"kimura","vehicle":"car", "staff":{"id":"02","dep":"engineer"}},
"data3":{"date":"2015-01-01","name":"noguchi","vehicle":"train","staff":{"id":"03","dep":"bookkeeper"}},
"data4":{"date":"2015-01-01","name":"kikuchi","vehicle":"train", "staff":{"id":"04","dep":"engineer"}},
"data5":{"date":"2015-01-02","name":"tanaka","vehicle":"train", "staff":{"id":"01","dep":"sales"}}
};
var attendance_and_vehicle = Object.keys(attendance).reduce(function (previous, currentProperty) {
var currentValue = previous[currentProperty];
for (var i = 0, keys = Object.keys(data), l = keys.length, date = currentValue.date, name = currentValue.name; i < l; ++i) {
var value = data[keys[i]];
if (value.date === date && value.name === name) {
currentValue.vehicle = value.vehicle;
currentValue.staff = value.staff;
return previous;
}
}
return previous;
}, JSON.parse(JSON.stringify(attendance)));
console.log(JSON.stringify(attendance)); // {"obj1":{"date":"2015-01-01","name":"tanaka","出勤":"09:00:00","退勤":"18:00:00"},"obj2":{"date":"2015-01-01","name":"kimura","出勤":"10:00:00","退勤":"20:00:00"},"obj3":{"date":"2015-01-02","name":"tanaka","出勤":"09:00:00","退勤":"18:00:00"},"obj4":{"date":"2015-01-02","name":"kimura","出勤":"10:00:00","退勤":"20:00:00"}}
console.log(JSON.stringify(attendance_and_vehicle)); //...