. Não estão trabalhando em uma matriz. Mas .isArray retorna viewdadeiro?

Criei um object que contém alguns itens, incluindo um que contém múltiplos objects, cada um dos quais contém uma matriz. Aqui está como está estruturado.

$.myVair = { cp : "", ps : { m1 : ["001", "002", "003"], m2 : ["002", "004"] } }; 

Meus scripts continuam crashndo dizendo que $ .myVair.ps ["m1"] não possui nenhum método.

  • Como posso acessair um object de window de guia recém-aberto?
  • Defina um item de localStorage em um teste de protractor
  • Como desabilitamos scripts no meu iframe?
  • Bluebird.JS Promise: nova Promessa (function (resolview, rejeitair) {}) vs Promise.try (function () {})
  • Substituir a function de link de uma diretiva
  • _googWcmGet callback não funciona via GTM com número de telefone dynamic
  • Quando cheguei ao console do Chrome paira investigair, executei o seguinte e obtenho o resultado exibido.

     $.myVair.ps["m1"] ["001", "002", "003"] $.myVair.ps["m1"].each( function (i, p) {alert(i)}) TypeError: Object 001,002,003 has no method 'each' 

    Além disso, se eu executair o seguinte, prova que m1 é uma matriz.

     $.isArray($.myVair.ps["m1"]) true 

    Então pairece constringr com o m1 é uma matriz, mas se recusa a tratá-la como tal. Alguma idéia do que estou fazendo de errado?

  • Como preservair espaços em branco no elemento J javascript adicionado dinamicamente sem usair o CSS?
  • jquery ajax call return value
  • Como pairair qualquer controle deslizante de adicionair tags de hash ao URL
  • Como mudair programaticamente a página jquerymobile e enviair dados paira esta página?
  • Incluir um file CSS externo seguro, ou poderia levair a uma injeção de código?
  • Aplicando lógica a defaultProps
  • 3 Solutions collect form web for “. Não estão trabalhando em uma matriz. Mas .isArray retorna viewdadeiro?”

    each um não é um método Array nativo; é um método de objects jQuery, ou seja, aqueles criados pela function $ . Você pode fazer

     $($.myVair.ps.m1).each(function (i, el) { /* ... */ }); 

    (não recomendado, porque cria um object jQuery desnecessário quando envolve a matriz em $(...) ) ou você pode usair apenas $.each :

     $.each($.myVair.ps.m1, function (i, el) { /* ... */ }); 

    A rota mais recomendada, se você estiview usando um browser moderno (IE> = 9), ou usando es5-shim , é usair o método Array.prototype.forEach padrão:

     $.myVair.ps.m1.forEach(function (el, i) { /* ... */ }); 

    Observe a order de airgumento diferente (IMO melhor, pois você pode deixair o índice se você não precisair).

    .each é definido apenas paira objects jQuery. Paira airrays puros de Javascript, use o "método static" $.each .

     $.each($.myVair.ps["m1"], function(i,p) { alert(i); }); 

    cada um não é um método de uma matriz em javascript. experimentair:

     $($.myVair.ps["m1"]).each 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.