[英]array destructuring using another array elements
我有以下用户数组:
const usersArray = [ 'A', 'B'];
它可以是任何长度:
const usersArray = [ 'A', 'B', 'C', 'D'];
我正在使用这些变量名提取前两个:userA和userB。 这些变量名是已知的。
const [ userA, userB] = usersArray;
然后我有一些我在其他用户数组中得到的未知用户名:
const otherUsers = [ 'userC', 'userD', 'userE'];
如何从usersArray
内部变量名下的otherUsers
提取值? 鉴于我首先需要提取已知的,然后再提取其他。
我可以对前两个已知变量进行取消移位:
otherUsers.unshift('userA', 'userB')
所以现在我所有的变量都在otherUsers
内部。 我怎样才能一一提取它们?
只需使用rest属性:
const [ userA, userB, ...otherUsers] = usersArray;
或者使用slice
:
const [ userA, userB] = usersArray;
const otherUsers = usersArray.slice(2);
您要做的是使用eval() 。
const usersArray = ['A', 'B', 'C', 'D'];
const otherUsers = ['userC', 'userD', 'userE'];
const allUsers = otherUsers.unshift('userA', 'userB')
let joined = allUsers.join(',');
eval(`let [${joined}] = usersArray`);
现在,如果您运行console.log(userA, userB, userC, userD, userE)
,您将获得已定义的变量。
注意:由于eval并不是评估代码字符串的好方法 ,因此可以使用window.Function 。 只需将eval调用替换为Function调用,如下所示:
Function(`let [${joined}] = usersArray`)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.