30 lines
736 B
JavaScript
30 lines
736 B
JavaScript
![]() |
var keys = require('./keys')
|
||
|
|
||
|
var slice = require('../array/slice')
|
||
|
var includes = require('../array/includes')
|
||
|
var arrayEach = require('../array/arrayEach')
|
||
|
|
||
|
var assign = require('../object/assign')
|
||
|
|
||
|
/**
|
||
|
* 将一个或者多个对象值解构到目标对象
|
||
|
*
|
||
|
* @param {Object} destination 目标对象
|
||
|
* @param {...Object}
|
||
|
* @return {Boolean}
|
||
|
*/
|
||
|
function destructuring (destination, sources) {
|
||
|
if (destination && sources) {
|
||
|
var rest = assign.apply(this, [{}].concat(slice(arguments, 1)))
|
||
|
var restKeys = keys(rest)
|
||
|
arrayEach(keys(destination), function (key) {
|
||
|
if (includes(restKeys, key)) {
|
||
|
destination[key] = rest[key]
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
return destination
|
||
|
}
|
||
|
|
||
|
module.exports = destructuring
|