删除数组中的每个第5个元素,但从第2个元素

时间:2017-11-19 11:08:24

标签: javascript arrays

我的数组是包含5个元素的3个组的序列。

var tempArray1 = ['prodn', 'PP1', 'UK1', 'Exp', 'India2', 'prodn', 'PP2', 'france1', 'Imp', 'Czech2', 'prodn', 'PP3', 'Germ1', 'Exp', 'Rom2']

我需要删除我的数组中的第二个元素,然后删除每个第5个元素。这将删除以" PP"开头的所有元素。请注意,我想删除引用数组中的位置,而不是字符类型。以下是我删除每个第5个元素的代码。

var indexToRemove = 5;  // start position
var numberToRemove = 1; // elements to remove

tempArray1.splice(indexToRemove, numberToRemove);

但是我如何从第二个元素开始呢?谢谢。

3 个答案:

答案 0 :(得分:2)

当你使用splice时,你会改变数组(就地),所以你需要采取4步而不是5步,因为你已经删除了一个值。在索引1处开始for循环:

const tempArray1 = ['prodn', 'PP1', 'UK1', 'Exp', 'India2', 'prodn', 'PP2', 'france1', 'Imp', 'Czech2', 'prodn', 'PP3', 'Germ1', 'Exp', 'Rom2'];

for (let i = 1; i < tempArray1.length; i += 4) {
    tempArray1.splice(i, 1);
}

console.log(tempArray1);
.as-console-wrapper { max-height: 100% !important; top: 0; }

答案 1 :(得分:1)

&#13;
&#13;
    var tempArray1 = ['prodn', 'PP1', 'UK1', 'Exp', 'India2', 'prodn', 'PP2', 'france1', 'Imp', 'Czech2', 'prodn', 'PP3', 'Germ1', 'Exp', 'Rom2']
    for(i=2-1; i< tempArray1.lenght; i+=5-1){
        // start with 2nd element (-1 because arrays start at 0)
        // and than jump to 5th element (-1 because the one has just been removed)
        // remove 1 element at i-th place 
        tempArray1.splice(i,1);
    }
&#13;
&#13;
&#13;

答案 2 :(得分:0)

const tempArray1 = ['prodn', 'PP1', 'UK1', 'Exp', 'India2', 'prodn', 'PP2', 'france1', 'Imp', 'Czech2', 'prodn', 'PP3', 'Germ1', 'Exp', 'Rom2'];

const newArray = tempArray1.filter(function(element, i){
    return (i % 5) != 1;
});

console.log(newArray);