簡體   English   中英

在關聯數組中間拼接元素

[英]Splicing an element in the middle of an associative array

我想向這樣訪問的對象中的數組添加元素以檢索數據。

var event_id = events_data.event_id[i]["0"];
var event_title = events_data.event_title[i]["0"];
var selected_source = events_data.selected_source[i]["0"];
var channel_id = events_data.channel_id[i]["0"];

events_data是一個具有元素event_id,event_title等的對象。該對象是在類似這樣的php函數中創建的。

$return = array();
$return['event_id'] = $event_id; 
$return['event_title'] = $event_title;
$return['selected_source'] = $selected_source;
$return['channel_id'] = $channel_id;
$return['channel_name'] = $channel_name;
$return['event_site'] = $event_site;
$return['event_url'] = $event_url;
$return['start_date'] = $start_date;
$return['start_time'] = $start_time;
$return['end_date'] = $end_date;
$return['end_time'] = $end_time;
$return['event_notes'] = $event_notes;

echo json_encode($return);

編輯-添加信息

json對象看起來像這樣。

{“ event_id”:[{“ 0”:“ e20120319215556”},{“ 0”:“ e20120310221512”},{“ 0”:“ e20120319151903”},{“ 0”:“ e20120309123705”},{“ 0” :“” e20120307122044“},{” 0“:” e20120306182514“},{” 0“:” e20120309211714“},{” 0“:” e20120314130727“},{” 0“:” e20120319150532“},{” 0“ :“ e20120319141928”},{“ 0”:“ e20120319141201”},{“ 0”:“ e20120301193226”},{“ 0”:“ e20120301184354”}]}}

添加完信息

在javascript方面,我得到了events_data數組,像這樣。

$.ajax({
    url: "get_events_data.php",
    type: "POST",
    dataType : 'json',
    data: { },
    cache: false,
    async: false,
    success: function (rdata) {
        events_data = rdata;
                  }
         });

要將元素添加到javascript端的events_data中,我檢查要在哪里添加新元素的索引,然后使用splice添加它。 但是,由於使用關聯數組的文本鍵[[0]]檢索了數據,因此我不知道如何指定拼接參數。

for ( var n=0; n<events_data.event_id.length; n++ ) { 
   if ( current_event_id == events_data.event_id[n]["0"] ) {
       //splice_index = n;              
       events_data.event_id.splice(n,0,event_id);
       events_data.event_title.splice(n,0,event_title);
       events_data.selected_source.splice(n,0,selected_source);
       events_data.channel_id.splice(n,0,channel_id);
       events_data.channel_name.splice(n,0,channel_text);
       events_data.event_site.splice(n,0,event_site);
       events_data.event_url.splice(n,0,event_url);
       events_data.start_date.splice(n,0,start_date_string);
       events_data.start_time.splice(n,0,start_time_string);
       events_data.end_date.splice(n,0,end_date_string);
       events_data.end_time.splice(n,0,end_time_string);
       events_data.event_notes.splice(n,0,event_notes);
       break;
    }
}

指定拼接索引“ n”似乎不行。 我應該改變什么?

謝謝。

答案很簡單:

使用拼接將對象添加到對象數組

var add_object = {"0",event_id}; // declare event id as object
events_data.event_id.splice(n,0,add_object); // splice object into object array at index

暫無
暫無

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

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