如何在JavaScript中更新数组中的特定值

如何在JavaScript中更新数组中的特定值,javascript,angularjs,arrays,object,properties,Javascript,Angularjs,Arrays,Object,Properties,我有以下数组 0:{VERSION: 1, CURRENT_DATE: "1900-01-01", CURRENT_ACTIVITY_DATE: "2017-06-22"}, 1:{VERSION: 2, PREVIOUS_DATE: "1900-01-01", PREVIOUS_ACTIVITY_DATE: "2017-06-22"} 我需要更改日期的格式,并用新的格式化日期更新数组。任何想法都会有帮助 我面临的确切问题是数组索引在每一行中都不相同。该代码适用于“上一个活动日期”,但对于“当

我有以下数组

0:{VERSION: 1, CURRENT_DATE: "1900-01-01", CURRENT_ACTIVITY_DATE: "2017-06-22"},
1:{VERSION: 2, PREVIOUS_DATE: "1900-01-01", PREVIOUS_ACTIVITY_DATE: "2017-06-22"}
我需要更改日期的格式,并用新的格式化日期更新数组。任何想法都会有帮助

我面临的确切问题是数组索引在每一行中都不相同。该代码适用于“上一个活动日期”,但对于“当前活动日期”,日期格式保持不变且未更改。如果我有更多不同索引的行,我需要更改所有行的格式

我正在使用momente.js更改格式,这部分工作正常

提前谢谢

只要在数组上使用,它就会更新数组中的每个项目日期属性:

arr.map(function(el) {
  if (el["PREVIOUS_ACTIVITY_DATE"])
    el["PREVIOUS_ACTIVITY_DATE"] = new Date(el["PREVIOUS_ACTIVITY_DATE"]);

  if (el["PREVIOUS_DATE"])
    el["PREVIOUS_DATE"] = new Date(el["PREVIOUS_DATE"]);

  if (el["CURRENT_ACTIVITY_DATE"])
    el["CURRENT_ACTIVITY_DATE"] = new Date(el["CURRENT_ACTIVITY_DATE"]);

  if (el["CURRENT_DATE"])
    el["CURRENT_DATE"] = new Date(el["CURRENT_DATE"]);

  return el;
});
演示:

const arr=[{
版本:1,,
当前日期:“1900-01-01”,
当前活动日期:“2017-06-22”
},
{
版本:2,
前一天:“1900-01-01”,
上一次活动日期:“2017-06-22”
}
];
arr.map(功能(el){
如果(el[“上一次活动日期”])
el[“以前的活动日期”]=新日期(el[“以前的活动日期”);
如果(el[“上一个日期”])
el[“上一个日期”]=新日期(el[“上一个日期”]);
如果(el[“当前活动日期”])
el[“当前活动日期”]=新日期(el[“当前活动日期”);
如果(el[“当前日期”])
el[“当前日期”]=新日期(el[“当前日期”]);
返回el;
});
控制台日志(arr)只要在数组上使用,它就会更新数组中的每个项目日期属性:

arr.map(function(el) {
  if (el["PREVIOUS_ACTIVITY_DATE"])
    el["PREVIOUS_ACTIVITY_DATE"] = new Date(el["PREVIOUS_ACTIVITY_DATE"]);

  if (el["PREVIOUS_DATE"])
    el["PREVIOUS_DATE"] = new Date(el["PREVIOUS_DATE"]);

  if (el["CURRENT_ACTIVITY_DATE"])
    el["CURRENT_ACTIVITY_DATE"] = new Date(el["CURRENT_ACTIVITY_DATE"]);

  if (el["CURRENT_DATE"])
    el["CURRENT_DATE"] = new Date(el["CURRENT_DATE"]);

  return el;
});
演示:

const arr=[{
版本:1,,
当前日期:“1900-01-01”,
当前活动日期:“2017-06-22”
},
{
版本:2,
前一天:“1900-01-01”,
上一次活动日期:“2017-06-22”
}
];
arr.map(功能(el){
如果(el[“上一次活动日期”])
el[“以前的活动日期”]=新日期(el[“以前的活动日期”);
如果(el[“上一个日期”])
el[“上一个日期”]=新日期(el[“上一个日期”]);
如果(el[“当前活动日期”])
el[“当前活动日期”]=新日期(el[“当前活动日期”);
如果(el[“当前日期”])
el[“当前日期”]=新日期(el[“当前日期”]);
返回el;
});

控制台日志(arr)您可以采用以下方法:

var myArray = [
    {VERSION: 1, CURRENT_DATE: "1900-01-01", CURRENT_ACTIVITY_DATE: "2017-06-22"},
    {VERSION: 2, PREVIOUS_DATE: "1900-01-01", PREVIOUS_ACTIVITY_DATE: "2017-06-22"}
];

//Format all entries with the desired keys...
var formatKeys = ["CURRENT_DATE","CURRENT_ACTIVITY_DATE","PREVIOUS_DATE","PREVIOUS_ACTIVITY_DATE"];

// Iterate through your array
for(var i = 0; i < myArray.length; i++){
    // Iterate through the desired keys to format
    for(var key in formatKeys){
         if(myArray[i][formatKeys[key]] !== undefined)
         myArray[i][formatKeys[key]].format(); // Your format call
    }
}
var myArray=[
{版本:1,当前日期:“1900-01-01”,当前活动日期:“2017-06-22”},
{版本:2,上一个日期:“1900-01-01”,上一个活动日期:“2017-06-22”}
];
//使用所需的键格式化所有条目。。。
var formatKeys=[“当前活动日期”、“上一个活动日期”、“上一个活动日期”];
//遍历数组
对于(var i=0;i
您可以采用以下方法:

var myArray = [
    {VERSION: 1, CURRENT_DATE: "1900-01-01", CURRENT_ACTIVITY_DATE: "2017-06-22"},
    {VERSION: 2, PREVIOUS_DATE: "1900-01-01", PREVIOUS_ACTIVITY_DATE: "2017-06-22"}
];

//Format all entries with the desired keys...
var formatKeys = ["CURRENT_DATE","CURRENT_ACTIVITY_DATE","PREVIOUS_DATE","PREVIOUS_ACTIVITY_DATE"];

// Iterate through your array
for(var i = 0; i < myArray.length; i++){
    // Iterate through the desired keys to format
    for(var key in formatKeys){
         if(myArray[i][formatKeys[key]] !== undefined)
         myArray[i][formatKeys[key]].format(); // Your format call
    }
}
var myArray=[
{版本:1,当前日期:“1900-01-01”,当前活动日期:“2017-06-22”},
{版本:2,上一个日期:“1900-01-01”,上一个活动日期:“2017-06-22”}
];
//使用所需的键格式化所有条目。。。
var formatKeys=[“当前活动日期”、“上一个活动日期”、“上一个活动日期”];
//遍历数组
对于(var i=0;i
如果您不知道密钥是什么,可以通过调用
var keys=Object.keys(数组[0])
来访问它们

如果您想修改当前日期,只需通过以下方式:

var currentDateKey = keys[1];
array[0][currentDateKey] = "newDateString";

您的数组将被修改为新值。

如果您不知道键是什么,您可以通过调用
var keys=Object.keys(数组[0])
来访问它们

如果您想修改当前日期,只需通过以下方式:

var currentDateKey = keys[1];
array[0][currentDateKey] = "newDateString";

您的数组将被修改为新值。

迭代数组并分别更改每个日期?我甚至不知道您在当前用例中会遇到什么问题,您尝试过了吗?新格式化日期看起来如何?嗯,@LS2我认为您在错误的位置查找问题,您能粘贴更长的代码吗,是什么生成了这个数组或更多的信息..迭代数组并分别更改每个日期?我甚至不知道当前用例会有什么问题,你试过了吗?新格式化的日期看起来怎么样?嗯,,@LS2我认为你在错误的地方寻找问题,你能粘贴更长的代码吗,是什么生成了这个数组或更多信息..谢谢你的回复。我想我没有正确地解释这个问题。但我面临的确切问题是数组索引在每一行中都不相同。该代码适用于“上一个活动日期”,但对于“当前活动日期”,日期格式保持不变且未更改。如果有更多具有不同索引的行,我需要更改所有行的格式。@LS2请用您的代码更新您的问题,无论如何使用
Array.map()
将处理所有项目,即使它们具有与您所说相同的索引。@LS2我想我理解您的意思,在尝试更改键之前,需要检查对象中是否存在
键。请检查我的编辑。谢谢回复。我想我没有正确地解释这个问题。但我面临的确切问题是数组索引在每一行中都不相同。该代码适用于“上一个活动日期”,但对于“当前活动日期”,日期格式保持不变且未更改。如果我有更多不同索引的行,我需要更改所有行的格式。@LS2请用您的代码更新您的问题,无论如何,使用
Array.map()
将处理所有项目,即使它们的索引与您所说的相同。@LS2我想我在下面