我有一组对象,这些对象是来自CMS的动态数据。我希望能够根据偏移量对它们进行拆分。我尝试使用解构,但是在使用过程中出现了错误。
未捕获的SyntaxError:rest元素必须是最后一个元素
我首先尝试了这种简单的设置,可以将最后一个项目与firstItems分开,但是我发现您不能使用像这样的解构。
const offset = 2;
const cmsData = [{..},{..},{..},{..}]
firstItems = [{..},{..}];
last = [{..},{..}];
我想做的是有一个函数,可以在其中传递一个偏移值,这样它将使我得到的第一个项目直到偏移号,然后最后是偏移号项目。例如。
npm
如果offset = 3,则最后一个将是最后3个。
答案 0 :(得分:2)
您可以将Array.slice()
与negative offset结合使用:
const offset = 3;
const cmsData = [1, 2, 3, 4];
const firstItems = cmsData.slice(0, -offset);
const lastItems = cmsData.slice(-offset);
console.log(firstItems);
console.log(lastItems);
答案 1 :(得分:0)
firstItems = cmsData.slice(0, cmsData.length - offset);
last = cmsData.slice(cmsData.length - offset);
答案 2 :(得分:0)
您只能在数组的 end 中使用这种语法-如您所见,它在一开始就不起作用。请改用.slice
:
const cmsData = [0, 1, 2, 3];
const firstItems = cmsData.slice(0, cmsData.length - 1);
const last = cmsData[cmsData.length - 1];
console.log(firstItems);
console.log(last);
或者,从末尾获得多个项目:
const cmsData = [0, 1, 2, 3];
const offset = 2;
const firstItems = cmsData.slice(0, cmsData.length - offset);
const last = cmsData.slice(cmsData.length - offset);
console.log(firstItems);
console.log(last);