AJUDA COM ARRAY
to com uma duvida para obter os dados de um id
esse é meu arry
const test_array = [ {id: 6 ["0", "0.1", "4.2", "Kramer Street"] } ]; é um array dentro de outro
como faço para fazer o filtro tipo obter tudo que esta no id 1
let str = [[{"id":0}], [{"flags":1,"x":1098,"y":610,"color":0}, {"flags":4,"x":1098,"y":610,"color":0}]]
console.log((str).filter(idt => idt.id === 0));
const ids = Object.values(str.map(p => p.id===0));
console.log(ids); // [1, 2, 3, 4]
so tenho esse retorno na verdade eu preciso somante dos outros mas pela pesquisa do id
Citação::
Converta para objeto, assim, vai poder aproveitar todas as vantagens do LINQ e expressões lambda.
eu fiz aqui e aqui da certinh porem nao da certo no codigo
que recebe o mesmo array
https://jsfiddle.net/Fabriciocoutomatos/84kzftn7/
Quando passa o mouse no x vermelho, o que diz?
Veja que ele ser uma string é praticamente certeza pelo output do console.log(arrays), em que mostrou todo o texto do array em vez de mostrar ele de forma estruturada podendo expandir os elementos como todo navegador moderno faz no console, e isso explica também o motivo pelo qual o Object.values(arrays) não dar erro mas não acharia nada, pois se for uma string ele transforma a string em um array de caracteres e assim existe o método filter, porém o arrays é uma string e strings não possuem método filter.
eu diria para tentar algo do tipo para converter o texto em um array
let arrays = JSON.parse(funcaoQuePegaOArray());
Citação::
Me parece que o seu "arrays" nos testes do jsfiddle é um array de verdade pois voce deixou ele hardcoded, já o do seu programa mesmo é uma string
Veja que ele ser uma string é praticamente certeza pelo output do console.log(arrays), em que mostrou todo o texto do array em vez de mostrar ele de forma estruturada podendo expandir os elementos como todo navegador moderno faz no console, e isso explica também o motivo pelo qual o Object.values(arrays) não dar erro mas não acharia nada, pois se for uma string ele transforma a string em um array de caracteres e assim existe o método filter, porém o arrays é uma string e strings não possuem método filter.
eu diria para tentar algo do tipo para converter o texto em um array
let arrays = JSON.parse(funcaoQuePegaOArray());
ola o array que esta saindo esta assim, sim ele abre como falou aqui so coloquei na mesma linha so que nao estou conseguindo fazer o filtro
let arrays =[[{ "Id": 0,"flags": 0,"x": 20,"y": 192,"color": 0},{"Id": 0,"flags": 0,"x": 15,"y": 98,"color": 0}], [{ "Id": 1,"flags": 0,"x": 20,"y": 192,"color": 0},{"Id": 1,"flags": 0,"x": 15,"y": 98,"color": 0}]]
console.log(arrays.map(Id => (arrays.filter(Id => Id.Id === 1))));
console.log(arrays.map(obj2 => obj2.Id=== "1"));
var teste= Array.from(Object.values(arrays)).filter(Id => Id.Id === parseInt(0))
console.log(teste);
let teste1 = Object.values(arrays.filter(arrays => arrays.Id === 0));
console.log(teste1);
let retorno = arrays.filter(function(teste) {
return teste.Id === 0; });
console.log(retorno);
Como voce ta indo direto na veia (filter) era bom dar uma confrontada se estruturalmente esta sendo salvo como voce espera
quando eu nao armazeno um array dentro do array pai funciona
o problema esta em adicionar os array dentro do array mestre
o diagrama desse array seraia array_mestre [ [ array 1 ] , [ array 2 ] , [ array 3] , etc.... ] fecha array pai
Citação::
Se voce itera (foreach) ta vindo que voce espera ???
Como voce ta indo direto na veia (filter) era bom dar uma confrontada se estruturalmente esta sendo salvo como voce espera