我正在使用angularJs的谷歌圖表。我面臨的問題是圖表中使用的數據必須是一個數組,但我擁有的數據類型是一個對象。那麼我怎麼把它轉換成一個數組。 數據我有:轉換對象到數組Angularjs
Object {Normale: 1129, urgente: 153}
數組想有會是這樣的:
[['priorite', 'nb'], ['urgente', 1129],['normale', 153]]
謝謝
我正在使用angularJs的谷歌圖表。我面臨的問題是圖表中使用的數據必須是一個數組,但我擁有的數據類型是一個對象。那麼我怎麼把它轉換成一個數組。 數據我有:轉換對象到數組Angularjs
Object {Normale: 1129, urgente: 153}
數組想有會是這樣的:
[['priorite', 'nb'], ['urgente', 1129],['normale', 153]]
謝謝
Lodash是完美的輕鬆做到這一點。
['priorite', 'nb']
這一切! ;)var obj = {Normale: 1129, urgente: 153};
var arr = _.toPairs(obj);
arr.unshift(['priorite', 'nb']);
console.log(arr);
<!doctype html>
<html lang="en" ng-app="app">
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>
</head>
<body>
</body>
</html>
您還可以通過他們的價值秩序的優先級(第一是急,最後被VeryLow)是這樣的:
var obj = {VeryLow: 100, Normal: 500, Urgent: 1000, Low: 250};
var arr = _.toPairs(obj);
arr = arr.sort(function compare(a, b) {
if (a[1] > b[1])
return -1;
if (a[1] < b[1])
return 1;
return 0;
});
arr.unshift(['priorite', 'nb']);
console.log(arr);
<!doctype html>
<html lang="en" ng-app="app">
<head>
<meta charset="utf-8">
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>
</head>
<body>
</body>
</html>
var myArray = [];
angular.forEach(function(obj) {
myArray.push({"priorite": obj.Normale, "nb": obj.urgente});
});
雖然這段代碼是受歡迎的,可能會提供一些幫助,這將是[很棒如果它包含* how *和* why *的解釋](// meta.stackexchange.com/q/114762),則可以解決問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –
您可以在Object.keys
使用reduce
:
var o = {
Normale: 1129,
urgente: 153
};
var a = Object.keys(o).reduce((a, b) => a.concat({
priorite: b,
nb: o[b]
}), []);
console.log(a);
謝謝你的回答,但我是否也可以用這種方式轉換對象:[['priorite','nb'],['urgente',1129],['normale',153]]? – Jiji
謝謝!這正是我需要的。 – Jiji