推送到数组只读取Javascript中的第二个索引
Push to array just read second index in Javascript
我在将数组转换为另一个数组时遇到问题。当我尝试推入新数组时,它只添加第二个索引。
这是我的阵列:
var emailAddr = [
{
customerID : "C20121121221327_249",
email : "fanjavaid@gmails.com",
files : [
"201409011141106_082895250262",
"201410011171208_082895250262"
]
},
{
customerID : "C20121121221327_300",
email : "fandi.java@gmail.com",
files : [
"201409011141106_xxx",
]
}
];
这里是我创建新数组的代码:
var penampungan = [];
for (var i = 0; i < emailAddr.length; i++) {
var data = {
customerID : emailAddr[i].customerID,
email : emailAddr[i].email
};
for (var j = 0; j < emailAddr[i].files.length; j++) {
data['master'] = emailAddr[i].files[j] + ".pdf";
data['detail'] = emailAddr[i].files[j] + "_detail.pdf";
penampungan.push(data);
}
}
console.log(penampungan);
我的预期结果是这样的:
var newArray = [
{
customerID : "C20121121221327_249",
email : "fanjavaid@gmail.com",
master : "201409011141106_082895250262.pdf",
detail : "201409011141106_082895250262_detail.pdf"
},
{
customerID : "C20121121221327_249",
email : "fanjavaid@gmail.com",
master : "201410011171208_082895250262.pdf",
detail : "201410011171208_082895250262_detail.pdf"
},
{
customerID : "C20121121221327_300",
email : "fandi.java@gmail.com",
master : "201409011141106_xxx.pdf",
detail : "201409011141106_xxx_detail.pdf"
}
];
如何创建?
谢谢。
您需要将data
创建移动到内部循环
var penampungan = [];
for (var i = 0; i < emailAddr.length; i++) {
for (var j = 0; j < emailAddr[i].files.length; j++) {
var data = {
customerID : emailAddr[i].customerID,
email : emailAddr[i].email
};
data['master'] = emailAddr[i].files[j] + ".pdf";
data['detail'] = emailAddr[i].files[j] + "_detail.pdf";
penampungan.push(data);
}
}
像这样:
var penampungan = [];
for (var i = 0; i < emailAddr.length; i++) {
for (var j = 0; j < emailAddr[i].files.length; j++) {
var data = {};
data.customerID = emailAddr[i].customerID,
data.email = emailAddr[i].email
data.master = emailAddr[i].files[j] + ".pdf";
data.detail= emailAddr[i].files[j] + "_detail.pdf";
penampungan.push(data);
}
}
console.log(penampungan);
首先,为什么不创建一个类?它将为您组织数组中每个元素的数据,并减少需要解析的代码量。我可以建议一下吗:
function Info (customerID, email, files) {
this.customerID = customerID;
this.email = email;
this.files = files;
this.penampungan = function () {
var newObjects = new Array (files.length);
for (var i = 0; i < files.length; i++) {
newObjects [i] = {
customerID : this.customerID,
email : this.email,
master : files [i] + ".pdf",
detail : files [i] + "_detail.pdf",
};
}
return newObjects;
}
}
现在制作一个for语句,该语句获取一个Info数组,并将penampungan对象加载到一个新数组中。
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 为什么不'在JQuery中找到第二个css选择器的工作
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- CORS-重定向到第二个GET正在接收的页面
- 正则表达式与数字中的第二个点匹配
- 如何在react js中移动第二个组件
- 减去两个索引不同但值相同的整数
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 关闭第二个事件源上的第一个事件源's onopen方法
- D3从嵌套的JSON中绘制第二个圆环图
- IE11中的第二个调用取消了第一个Fetch API调用
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- Javascript:foreach跳过第一个索引(0)
- 角度指令:指向第二个元素
- javaScript RegExp第二个索引
- 将两个数组中的项目合并到第三个数组中,其中一列从第一个数组中减去第二个索引
- 如何从数组中获取第二个索引请求,以便从jQuery开始
- 推送到数组只读取Javascript中的第二个索引
- 按第一个列表中项目的索引将项目添加到第二个列表中
- JavaScript神秘地跳过了数组的第二个索引