Jump to content


Photo

Property List...[resolvido]


  • Faça o login para participar
6 replies to this topic

#1 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 11:09

Olá pessoal!
Tava querendo saber se é possível eu criar, em tempo de execução, uma property list.
Tipo assim: Suponha que eu tenha uma função que receba dois arrays e com base neles retornar uma property list. por exemplo:
param1 = {key1, key2, ..., keyn}
param2 = {val1, val2, ..., valn}
return = {key1:val2, key:val2, ..., keyn:valn}
É possível?

Edição feita por: Mantu, 30/06/2006, 15:17.

[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#2 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 30/06/2006, 11:38

Você quer que isso:

var para = new Array("nome","sobrenome","idade");
var value = new Array("pedro","silva","50");

Vire isso:
var merge = new Array("nome"=>"pedro","sobrenome"=>"silva","idade"=>"50");

??
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#3 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 11:54

É! Algo assim (Ah se esse "=>" existisse....)
/*keys tem que ser um array de Strings e vals um array de qq coisa (Strings, preferencialmente)*/
function genPropertyList(keys, vals){
	var result = new Array(0);
	for(var i = 0; i < Math.min(keys.length, vals.length); i++){
		result.concat(new Array(keys[i]=>vals[i]));
	}
	return result;
}
o result teria que ser uma property list pra eu poder acessar, seguindo o seu exemplo, assim:
function blablabla(){
	...
	var props = genPropertyList(para, value);
	alert("O nome do cabra é " + props["nome"] + " " + props["sobrenome"] + ". A idade dele é " + props["idade"]);
	...
}
Tem jeito?

Edição feita por: Mantu, 30/06/2006, 11:59.

[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#4 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 30/06/2006, 12:18

Eitaaa, boa garoto, assim que eu gosto, muito dinamismo. :')

Olha, simprona mas eficiente !!
<script type="text/javascript">
function dados(key,val){
var result = new Array();
	for(var x=0; x<key.length; x++){
	result[key[x]] = val[x];
	}
	return result;
}
var para = [["nome"],["sobrenome"],["idade"]];
var value = [["pedro"],["silva"],["30"]]
var chama = new dados(para,value);
alert("O nome do cabra é " + chama["nome"] + " " + chama["sobrenome"] + ". A idade dele é " + chama["idade"] + "anos.");
</script>

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#5 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 13:43

Genial!!! Era isso mesmo que eu precisav a! Muitíssimo obrigado!!!! (y)

...
var para = [["nome"],["sobrenome"],["idade"]];
var value = [["pedro"],["silva"],["30"]]
var chama = new dados(para,value);
...


Ia esquecendo.... Tem como vc explicar o quê foi feito nas linhas acima? Pra que vc dá um new no retorno da função dados? para e value são arrays do quê?
[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart

#6 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 30/06/2006, 14:52

pra ser sincero nem eu sei porque eu usei daquela forma :tongue:

var para = new Array("nome","sobrenome","idade");
var value = new Array("pedro","silva","30");
var chama = dados(para,value);


Em para e value eu usei uma forma literal pra escrever um array, tanto faz como vc vai escrever, e eu to acostumado a usar o new pra inicializar qualquer objeto em javascript, é um costume.

Edição feita por: bimonti, 30/06/2006, 14:53.

WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#7 Mantu

Mantu

    Turista

  • Usuários
  • 31 posts
  • Sexo:Não informado
  • Localidade:São Paulo - SP

Posted 30/06/2006, 15:16

Ok então! Mais uma vez, muito obrigado! Resolveu meus problemas!!!
[]'s
Mantu

Time after time we lose sight of the way. Our causes can't see their effects - Neil Peart




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq