Javascript |如何从索引x开始每隔n个元素向数组中添加一个元素?

Javascript |如何从索引x开始每隔n个元素向数组中添加一个元素?,javascript,Javascript,假设我有一个数组: var cars = ["Saab", "Volvo", "BMW", "Audi", "Nissan", "Ford"]; 我想从索引2开始每隔2个元素添加另一个元素“黛安芬”,以获得此值 cars ["Saab", "Volvo", "Triumph", "BMW", "Audi", "Triumph", "Nissan", "Ford", "Triumph"]; 我试过这个: for (let [index, val] of cars.entries()) {

假设我有一个数组:

var cars = ["Saab", "Volvo", "BMW", "Audi", "Nissan", "Ford"];
我想从索引2开始每隔2个元素添加另一个元素
“黛安芬”
,以获得此值

cars
["Saab", "Volvo", "Triumph", "BMW", "Audi", "Triumph", "Nissan", "Ford", "Triumph"];
我试过这个:

for (let [index, val] of cars.entries()) {
    if (index % 2 == 0) {
        cars.splice(index, 0, "")
    }
}
但它每隔一个元素(而不是每2个元素)添加一个新元素,我不知道如何使它从一个特定的索引开始


[“萨博”、“沃尔沃”、“宝马”、“奥迪”、“日产”、“福特”]

我建议使用反向迭代,这样您就不会修改正在迭代的相同数组,因为这将改变索引

此外,您可能希望实现一个简单的边缘案例,以确定是否需要向数组末尾添加字符串。这可以通过查看数组本身是否可以被要跳过的项的数量整除来实现

const cars=[“萨博”、“沃尔沃”、“宝马”、“奥迪”、“日产”、“福特”];
常量insertAfterN=(arr,n,str)=>{
让newArray=[…arr];
常量addToEnd=newArray.length%n==0;
for(设i=newArray.length-1;i>=0;i--)
如果(i%2==0&&i!==0)newArray.splice(i,0,str)
if(addToEnd)newArray.push(str);
返回新数组;
}
//在每个项目之后插入数组
const result=insertAfterN(cars,2,“黛安芬”);

控制台日志(结果)你做了什么努力?请去阅读。我们不喜欢“我想要”这样的问题。向我们展示您尝试过的内容,或者至少解释到目前为止您对如何实现这一点的思考过程。我已将我的attemptchange索引%2添加到索引%3 Simple!谢谢各位