Sunny-117 / js-challenges

✨✨✨ Challenge your JavaScript programming limits step by step

Home Page:https://juejin.cn/column/7244788137410560055

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请实现一个通用的Array解构赋值

Sunny-117 opened this issue · comments

let arr= [1 ,2 ,3 ,4 ];
let[a,...rest]=arr; 
// a=1 rest=[2 ,3 ,4]

const targetArray = [1, [2, 3], 4];
const formater = '[a, [b], c]';
const formaterArray = ['a', ['b'], 'c'];

const destructuringArray = (values, keys) => {
try {
const obj = {};
if (typeof keys === 'string') {
keys = JSON.parse(keys.replace(/\w+/g, '"$&"'));
}

const iterate = (values, keys) =>
  keys.forEach((key, i) => {
    if (Array.isArray(key)) iterate(values[i], key);
    else obj[key] = values[i];
  });

iterate(values, keys);

return obj;

} catch (e) {
console.error(e.message);
}
};

console.dir(destructuringArray(targetArray, formater));
console.dir(destructuringArray(targetArray, formaterArray));