我的数组是包含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);
但是我如何从第二个元素开始呢?谢谢。
答案 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)
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;
答案 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);