需要Javascript语法帮助返回对象数组
Need Javascript syntax help returning array of objects
我正在尝试返回以下对象数组:
{
"2013-04-30": {"number": 5, "url": "www.yahoo.com"},
"2013-05-04": {"number": 18, "url": "www.google.com"}
}
我很难纠正语法,我尝试了以下几种方法,但都没有成功。我的代码:
var returnEvents = [];
$.each(events, function (index, item) {
//returnEvents.push(item.Date, { 'number': item.Number, 'url': item.URL });
//returnEvents.push({ id: item.Date, value: { 'number': item.Number, 'url': item.URL } });
//var temp = {};
//temp[item.Date] = { 'number': item.Number, 'url': item.URL };
//returnEvents.push(temp);
});
您的最终结果是一个对象,而不是一个数组。您需要使用[]
语法为其赋值,以便动态指定属性名称。
var events = [
{ Date: "2013-04-30",
Number: 5,
URL: "www.yahoo.com"
},
{ Date: "2013-05-04",
Number: 18,
URL: "www.google.com"
}
];
var returnEvents = {};
$.each(events, function (index, item) {
returnEvents[item.Date] = { 'number': item.Number, 'url': item.URL };
});
console.log(returnEvents);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这是对象,而不是数组。所以您不应该使用push
。只需尝试以下内容:
var returnEvents = {};
$.each(events, function (index, item) {
returnEvents[item.Date] = { 'number': item.Number, 'url': item.URL };
});
如果您需要返回为数组,则您的预期返回数据应定义为:
[
{"2013-04-30": {"number": 5, "url": "www.yahoo.com"}},
{"2013-05-04": {"number": 18, "url": "www.google.com"}}
]
然后你可以构建如下数据:
var returnEvents = [];
$.each(events, function (index, item) {
returnEvents.push({item.Date :{ 'number': item.Number, 'url': item.URL }});
});
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序