Eu tenho tentado isso por horas e achei que seria muito simples;
Usando o javascript eu basicamente quero iteraratravés de uma matriz, obter o valor atual do índice e, em seguida, desmarque esse valor da matriz. Eu encontrei splice () deve funcionar para isso no entanto não parece ser capaz de esvaziar a matriz, há sempre um valor à esquerda no arrary
var filtered = array("up", "down", "left");
function resetTags(){
var length = filtered.length;
for(i=0; i <= length; i++){
filtered.splice(i,1);
}
}
EDITAR::
Vou tentar explicar um pouco mais detalhadamente:
Eu estou basicamente tentando manter o controle de uma lista de valores de classe selecionados que são obtidos a partir de quando um item é clicado: var filtrado = array ();
jQuery("li a").click(function () {
tag = jQuery(this).text();
addFiltered(tag);
});
function addFiltered(param){
var inArray = jQuery.inArray(param,filtered);
if(inArray > -1){
//param is in array, so we want to remove it from the filtered array
filtered.splice(index, 1);
});
}else{
//param isn"t in array, so we want to add it to the array
filtered.splice(0, 0, param);
});
}
}
Respostas:
1 para resposta № 1Se você quiser esvaziar a matriz, configure-a para ser uma matriz vazia diretamente:
filtered = [];
Se você quiser usar os valores antes de esvaziar a matriz, simplesmente faça uma iteração antes disso sem remover valores e limpe-a quando terminar.
O que você ganha ao brincar com soluções complicadas?
0 para resposta № 2
a matriz foi definida incorretamente. É por isso que o código não excedeu
var filtered = ["up", "down", "left"];
function resetTags(){
var length = filtered.length;
for(i=0; i <= length; i++){
filtered.splice(i,1);
}
}
0 para resposta № 3
Para remover itens um por um:
var a = [1,2,3,4,5];
while (a.length> 0) { a.splice (0,1); }
0 para a resposta № 4
Bem, você está incrementando. Já tentou decrementar?
var filtered = new Array("up", "down", "left");
function resetTags(){
var length = filtered.length;
for(i = length; i >= 0; i--){
filtered.splice(i,1);
}
}
Isso deve garantir que o elemento final seja dividido.
0 para a resposta № 5
Eu basicamente quero iterar através de uma matriz, obter o valor atual do índice e, em seguida, desmarque esse valor da matriz.
for(i=0; i <= length; i++){
filtered.splice(i,1);
}
Eu não acho que você está claramente definindo (ou talvez não saiba), o que você está tentando fazer.
Você está tentando escrever um pop(n)
método tal que:
var a = [1,2,3,4]
var result = pop(3, a)
result == [ 1, 2, 4]
Ou você está apenas tentando andar em uma matriz e obter o primeiro elemento fora de cada vez? Se assim for, você está fazendo errado. Isso é apenas um mudança()
var filtered = ["up", "down", "left"]
for(i = 0 ; i<= filtered.length; i++)
{
alert(filtered);
filtered.shift();
alert(filtered);
}