2017-04-24 55 views
0

獲取數組值我有一個JS變量,它接收帶JavaScriptSerializer的序列化C#列表。從命名索引JS

傳遞給JS變量序列化後的字符串是這樣的:

{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14} 

我願把所有的「值」數組中的x和所有的「日期」在排列Y。

當我做x: source["Date"]y: source["Value"]時,x和y保持空白。

這是爲什麼?

+0

糾正我,如果我錯了,乍一看,我希望JSON格式爲[{},{},{}(對象數組) – Noobit

回答

2

您的Json格式不正確,但如果您將其更正爲適當的Json格式,則可以使用JavaScript地圖來完成您所需的內容。

let arr = '[{"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}, 
      {"Date":"April 2017 - April 2017","Source":"Foo","Type":"Bar","Value":14}]'; 

let source = JSON.parse(arr); 

let x = source.map(x=> x.Date); 
let y = source.map(x=> x.Value); 

console.log(x); 
//[ 'April 2017 - April 2017', 'April 2017 - April 2017' ] 

console.log(y); 
//[ 14, 14 ] 
+0

我的ECMAScript 5,而不是ECMAScript的2015年,這個表達式在ECMAScript 5中會做什麼? (我是新手到js ...) –

+0

只需用var替換let。地圖應該與es5一起工作。 – luly

+1

** var x = source.map(function(x){return x.Date;} **你可以在這裏瞭解更多信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ Global_Objects/Array/map?v = control – luly