У меня есть JavaScript, как:Javascript значение в списке итерация определенного индекса вперед и назад
var data = ["apple", "ball", "cat", "dog", "elephant", "fish", "gorilla"]
var index = [2, 3] // cat and dog
var to = 5 // fish
var arrTemp = [];
data.forEach(function(val,key){
if(index.indexOf(key)!=-1){
data.splice((to+1),0,data[key]);
to++;
delete data[key];
}
})
data = data.filter(function(val){ return val != undefined });
console.log(data)
Здесь index = [2, 3]
является индекс data
я. е. ball and dog
и to
- это target
, где я хочу разместить значение index
.
Я хочу положить index
i. e ball and dog
после fish
.
Приведенный выше код дает точный результат и помог пользователю из SO.
Но когда я ставлю значение индекса на index = [4, 5]
и to = 2
. Это дает мне ошибку. Он не размещает elephant
и fish
после cat
.
Я написал другую программу, чтобы справиться с этим, как:
var data = ["apple", "ball", "cat", "dog", "elephant", "fish", "gorilla"]
var index = [4, 5] // elephant and fish
var to = 2 // cat
var offset = 0
data.forEach(function(val,key){
if(index.indexOf(key)!=-1){
data.splice((to+1), 0, data[key + offset]);
to++;
offset++;
var del_key = key + offset
delete data[del_key];
}
});
console.log(data)
Этот код дает результат для index = [4, 6]
или index = [3, 6]
и to = 2
, но не как index=[4, 5]
и to = 2
'[2,3]' 'является cat' и' 'dog' не ball' и' dog' – fuzz
@gotnull жаль, что была опечатка – gamer