[英]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.