簡體   English   中英

在數組中設置關聯數組值

[英]Set associative array value in array

這看起來很簡單,但我無法弄清楚。

在PHP中,我可以執行以下操作:

$number_children[reference_number - 1][$key] = value;

在Javascript中,我需要這樣做:在關聯數組中設置一個值,該數組在普通數組中。

我試過這個:

number_children[reference_number - 1][key] = $(this).val();

這似乎不起作用。 設置此值的簡單方法是什么?

在此先感謝您的幫助。

你在初始化數組嗎?:

number_children = [];
number_children[reference_number - 1] = {};
number_children[reference_number - 1][key] = $(this).val();

也許jsFiddle將有助於顯示問題。

在Javascript數組和“關聯數組”是不同的。 事實上,Javascript人不使用術語“關聯數組”,他們稱之為“對象”(或“哈希”)。

所以,你可以這樣做:

number_children[reference_number - 1] = {};
number_children[reference_number - 1][key] = $(this).val();

但是,當您嘗試迭代它時,由於length未設置,這會產生意外結果:

number_children[reference_number - 1] = [];
number_children[reference_number - 1][key] = $(this).val();

JavaScript中沒有關聯數組這樣的東西。

在PHP中,您只有數組,可以是數字,關聯或混合。 在JavaScript中,您有數組或對象。 JavaScript中的數組不是關聯的。

如果number_children是一個對象數組,那么你的代碼就完全沒了問題。 這意味着,如果這是包含對象的數組,則該對象又在示例中具有名為key變量的值的屬性。

tl; dr發布實際問題代碼(包含最少的必需上下文), 包括任何錯誤消息和/或[意外]症狀。


正如minitech所說:代碼沒有“明顯”錯誤。

無論如何,I Just Learned(TM)認為PHP具有某種形式的自動生存 JavaScript的自動生存率絕對為零

從而,

$number_children[reference_number - 1][$key] = value;

應該在PHP中工作,假設$number_children$number_children[x]

  1. 還沒有設定。
  2. 先前已設置為“數組”。

由於JS 不能像這樣工作,那么根據SpoonNZ或Sergio Tulentsev的答案, 必須在使用[]運算符之前顯式創建對象/數組 (參見他們的答案)。

快樂的編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM