使用 JavaScript/AngularJS 将数组转换为对象
Convert array to objects using JavaScript/AngularJS
我需要将父数组中的数组转换为对象以匹配我的数据库模型数据。
我有这样的数组:
emails: Array[2]
0: "example@mail.com"
1: "otherexample@mail.com"
id: 1
firstname: "Jane"
lastname: "Doe
我想要实现的是将电子邮件数组转换为这样的对象数组:
emails: Array[2]
0:
{
name: "example@mail.com"
}
1:
{
name: "otherexample@mail.com"
}
id: 1
firstname: "Jane"
lastname: "Doe
我尝试使用此代码将数组转换为对象,但由于某种原因它失败了(不显示任何数据 ->变量 rv 为空):
var rv = {};
for (var i = 0; i < dbInfo.emails.length; ++i)
if (dbInfo.emails[i] !== undefined) rv[i] = dbInfo.emails[i];
有人知道为什么我的代码失败,有人知道此类问题的解决方案吗?
谢谢提前。
这是
Array.prototype.map
函数的完美用法:
dbInfo.emails = dbInfo.emails.map(function(e) {
return { name: e };
});
即只需将数组的每个单独元素(e
)转换为对象{ name: email }
我认为你要找的是angular.extend。有关angular.extend的好文章,请单击此处。有关文档,请单击此处。
var newObj = {};
angular.extend(newObj,[Array here]);
您正在将电子邮件放入一个对象中。相反,您希望将每封电子邮件包装在其自己的对象中,然后将其放回数组中。
for (var i = 0; i < dbInfo.emails.length; ++i) {
if(dbInfo.emails[i] !== undefined) {
dbInfo.emails[i] = { name: dbInfo.emails[i] };
}
}
这项工作非常完美 选项 选择
var range = [];
for (var i=1; i<$scope.totalItems+1; i++) {
range.push({value:i});
}
console.log(range);
相关文章:
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 在Javascript中转换对象数组
- 如何将TypeScript对象转换为普通对象
- JavaScript代码问题:我正在将对象转换为数组
- Javascript如何转换对象数组
- 任何转换对象*值*的Javascript或Coffeescript“映射”函数
- 转换对象数组
- 转换对象或数组值的最佳方式
- 使用lodash转换对象的键和值的最优雅的方法是什么?
- Javascript/html5 2d Canvas Context -获取相对于Canvas的X, Y(相对于转换对象
- javascript,转换或强制转换对象
- 根据对象的不同,在转换对象时考虑旋转
- 在类中转换对象
- 转换对象数组的结构
- 用于在浏览器中转换对象(拖动、缩放、旋转和扭曲)的Javascript框架
- Javascript:通过lodash、下划线或corejavascript转换对象响应数组
- 如何转换对象数组
- 使用Lodash转换对象数组