2.3 KiB
2.3 KiB
id, title, challengeType, videoUrl, localeTitle
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7b8a367417b2b2512b4c | Use Destructuring Assignment with the Rest Operator to Reassign Array Elements | 1 | 使用与Rest运算符的Destructuring Assignment重新分配数组元素 |
Description
Array.prototype.slice()
,如下所示: const [a,b,... arr] = [1,2,3,4,5,7];变量
console.log(a,b); // 1,2
的console.log(ARR); // [3,4,5,7]
a
和b
从数组中获取第一个和第二个值。之后,由于rest操作符的存在, arr
以数组的形式获取其余的值。 rest元素仅作为列表中的最后一个变量正常工作。在中,您不能使用rest运算符来捕获一个子数组,该子数组会遗漏原始数组的最后一个元素。 Instructions
Array.prototype.slice()
以便arr
是原始数组source
的子数组,省略前两个元素。 Tests
tests:
- text: '<code>arr</code>应为<code>[3,4,5,6,7,8,9,10]</code>'
testString: 'assert(arr.every((v, i) => v === i + 3) && arr.length === 8,"<code>arr</code> should be <code>[3,4,5,6,7,8,9,10]</code>");'
- text: 应该使用解构。
testString: 'getUserInput => assert(getUserInput("index").match(/\[\s*\w*\s*,\s*\w*\s*,\s*...\w+\s*\]/g),"Destructuring should be used.");'
- text: 不应使用<code>Array.slice()</code> 。
testString: 'getUserInput => assert(!getUserInput("index").match(/slice/g), "<code>Array.slice()</code> should not be used.");'
Challenge Seed
const source = [1,2,3,4,5,6,7,8,9,10];
function removeFirstTwo(list) {
"use strict";
// change code below this line
arr = list; // change this
// change code above this line
return arr;
}
const arr = removeFirstTwo(source);
console.log(arr); // should be [3,4,5,6,7,8,9,10]
console.log(source); // should be [1,2,3,4,5,6,7,8,9,10];
Solution
// solution required