如何通过变量索引对JavaScript数组进行解构?
用变量索引解构JavaScript数组
你提到的固定索引解构方式是可行的——因为数组本质是特殊的对象,索引会被转为字符串作为属性名,所以const { 3: selectedByIndex } = arr本质是取arr的"3"属性值。
但直接写const { index: selectedByIndex } = arr时,这里的index是字面量属性名,JS会去查找arr上名为index的属性,而非变量index的值对应的索引。要实现用变量索引解构,需要使用计算属性名,把变量放在方括号[]中:
const index = 3; const arr = [1, 2, 3, 4, 5]; const { [index]: selectedByIndex } = arr; console.log(selectedByIndex); // 输出4
方括号里的表达式会被求值,这里变量index的值是3,所以等价于{ 3: selectedByIndex } = arr,就能正确取到数组索引3对应的元素。
如果只是单独取某个索引的元素,直接用arr[index]会更直观,但在解构嵌套结构里的数组时,计算属性名的解构写法会更实用。
内容的提问来源于stack exchange,提问作者shprecure
相关产品推荐
相关产品推荐

