使用另一个数组元素进行数组解构

问题描述 投票:2回答:2

我有以下用户数组:

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里面。我怎样才能逐一提取它们?

javascript arrays ecmascript-6 destructuring
2个回答
1
投票

只需使用rest属性:

 const [ userA, userB, ...otherUsers] = usersArray;

或者使用slice

 const [ userA, userB] = usersArray;
 const otherUsers = usersArray.slice(2);

-1
投票

你要做的就是使用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不是用good way来评估一串代码,你可以使用window.Function。只需用函数调用替换eval调用,如下所示:

Function(`let [${joined}] = usersArray`)
© www.soinside.com 2019 - 2024. All rights reserved.