2016-04-25 7 views
-7

こんにちは、私はPHPで作ることができるようにJavaScriptを配列にしようとしています。 PHPで私はこのような配列を作成し、好きなインデックスに挿入することができますJavaScriptのような配列をPHPのように

$p = array(); 
$p["abcd"] = "James"; 

今私はこの機能をjsにします。これは私の質問が重複されていない Uncaught TypeError: Cannot set property 'action' of undefined

誤りである私は、このような何かを行っているが、これは

$.each($('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){ 
    debugger; 
    steps_actions_dates_assign[key]["action"].push(value.val()); 
}); 

私にエラーを投げているjsファイルに

をそれを行うことが可能です

私はjavascriptのPHP配列にアクセスしようとしていませんが、PHPのようなjavascriptで配列を作成しようとしています(インデックスについて心配する必要はありません私は私が好きなインデックスを追加することができるはずと同じ方法)

これは、配列は数値インデックス用に設計されており、注文データを保持しているJavaScriptコードは

var steps_actions_dates_assign = new Array(); 

$.each($('.steps-table') , function (key , value){ 
    debugger; 
    step_id = value.children[0].value; 
    steps_actions_dates_assign[key]["action"] = new Array(); 
    $.each($('table[data-step-id=' + step_id +'] input[name^=actions]') , function(key , value){ 
     debugger; 
     steps_actions_dates_assign[key]["action"].push(value.val()); 
    }); 
}); 
+1

私の質問に投票した人は、なぜこの質問が下落したのか説明してください。 –

+3

@J Doe、この基本的なことは、本自体から得ることができるでしょう、あなた自身が最初に傾けようとしてください。 – JiteshNK

+1

あなたの編集を見ました。これはまったく新しい質問です。 'steps_actions_dates_assign [key]'はオブジェクトだと思います。そうではありません。デバッガを使用して、それが何であるかを調べます。 –

答えて

4

OF ALLです。

オブジェクトを使用して任意の名前のプロパティを格納します。 JSで

var p = {}; 
p["abcd"] = "James"; 

、それはそれで任意のプロパティを格納する可能であるので、配列はオブジェクトの種類ですが、あなたは、配列を反復処理や、そのような機能に渡ししようとすると、問題に実行されますJSON.stringifyとなります。

別のオプションとして、MapsよりもES6を使用している場合。

+0

Hum、私はマップを忘れていました。 [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/entries)によれば、特定の状況下では代替となるように、挿入順序を追跡しています。 –

+1

@JDoe - これはまったく新しい質問です。とにかく現在の状態ではそれは答えることができません。 'steps_actions_dates_assign'が何であるか、なぜ' steps_actions_dates_assign [key] 'が定義されているのかを私たちに示すことはありません。 – Quentin

+0

私はすべてのコードを追加しました。 –

関連する問題