question/implement-immutability-helper #32
Replies: 1 comment
-
参考高赞答案 /**
* @param {any} data
* @param {Object} command
*/
function update(data, command) {
for (const [key, val] of Object.entries(command)) {
switch (key) {
case '$push':
return [...data, ...val];
case '$set':
return val;
case '$merge':
if (typeof data !== 'object' || data === null) {
throw new Error('data should be an object');
}
return {
...data,
...val,
}
case '$apply':
return val(data);
default:
const newData = Array.isArray(data) ? [...data] : { ...data };
newData[key] = update(newData[key], val);
return newData;
}
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
question/implement-immutability-helper
北美前端面试攻略
https://us-fe.github.io/question/implement-immutability-helper.html
Beta Was this translation helpful? Give feedback.
All reactions