簡體   English   中英

使用javascript將數組值添加到地圖中?

[英]Add array values into map using javascript?

我有一個數組值作為鍵值:值對。 我想映射相同的鍵數組值,格式如下:

Expected Output: [abc: 1],[def:2,42,40]

請在下面找到我的代碼:

var a = {"abc": 1, "def": 2, "def": 42, "def" : 40};    
var array_keys = new Array();
var array_values = new Array();
for (var key in a) {
    array_keys.push(key);
    array_values.push(a[key]);
}
alert(array_keys);
alert(array_values);

它返回值為

My output : [abc:def] [1,40]

對此有何幫助?

如果你使用初始數據結構,你可以實現你想要的東西:

有一個對象數組:

var a = [{abc: 1}, {def: 2}, {def: 42}, {def: 40}];

設置一個新對象

var o = {};

然后循環數據。 對於每個對象:如果o中沒有鍵,輸出對象,添加它並將其值設置為數組,否則只需將對象的值推送到數組。

for (var i = 0, l = a.length; i < l; i++) {
  var key = Object.keys(a[i]);
  if (!o[key]) { o[key] = []; }
  o[key].push(a[i][key]);
}

最后得到一個對象,其值為數組:

console.log(o); // {abc: [1], def: [2,42,40] }

演示

var a = {"abc": 1, "def": 2, "def": 42, "def" : 40};

這是不可能的。 對象鍵在javascript中必須是唯一的,因此您不能使用相同的鍵(“def”)添加3個不同的項目。 如果使用相同的鍵定義多個元素,則至少chrome將采用最后添加的值。

所以回答你的問題:提供的輸入無法獲得預期的輸出。

暫無
暫無

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

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