2

私の頭の中では、配列にKey-Valueをプッシュしたいと思います。

たとえば、PHPでは、これは次のように実行されます。

$err = array();
function check($k,$v) {
  $err[$k] = $v; 
}

これはJavaScript/jQueryでどのように正確に行われますか?

4

2 に答える 2

6

配列ではなく、オブジェクトでのJavascriptキー/値ペアのサポート

要素の挿入:

var arr= [1,2,3],
    result = {};

for(var key in arr) {
   result[key] = arr[key]; // in this case key will be 0,1,2 i.e index of array element
}

キーが存在することを確認します。

function checking(k, v) {
  if(result.k != null || result.k !=  undefined) {
    // do something
  }
}

あなたの機能によると:

var err = {}; // not array, should be object
function check(k,v) {
  err[k] = v; // or err.k = v;
}

挿入の詳細:

var x = [];

x.some = 'some'; // OK; arrays are objects
x['some'] = 'some'; // exactly the same

値を取得:

x.home; // give 'some'
x['home']; // give 'some'

カウントの長さ:

配列の長さを取得する場合は、を使用する必要があります.length

例えば:

x.length; // will return 1

また、オブジェクトの長さを数えたい場合は、次のようにします。

var obj = {a: 'XYZ', b: 'PQR'};

Object.keys(obj).length; // will return 2

アイテムを削除するには:

オブジェクトからアイテムを削除する場合:

delete obj[key];

配列からアイテムを削除するには:

delete arr[index]; // index is position of the element within array

配列要素を削除することもできます

arr.splice(0,2); // splice(index, howmany, [item1, item2, ...., itemx])
                 // in this example from start 2 items will delete
于 2012-05-07T08:47:25.053 に答える
2

オブジェクトを使用します。そして、ほとんど同じ方法でそれを行います。

var $err = {};
function check($k, $v) {
     $err[$k] = $v;
}

確かに、それは配列ではありません。

実際にはJavascript配列でこれを行うことができ、インタプリタがそれを許可することに注意してください。

var $err = []; // an array
function check($k, $v) {
    $err[$k] = $v;
}

ただし、実際には配列にプッシュするのではなく、配列オブジェクトを拡張します。あなたはこれでこれをチェックすることができます:

var foo = [];
foo['hello'] = 'world';

console.log(foo);            // []
console.log(foo['hello']);   // 'world'
console.log(foo.hello);      // 'world'
console.log(foo.length);     // 0

...この落とし穴に気をつけてください。:D

于 2012-05-07T08:46:02.243 に答える