2017-04-24 29 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