如何从 javascript 中的对象中删除时间?
How to remove time from object in javascript?
我正在尝试从我的对象中的 属性 之一中删除时间。实际上我检查:索引,如果时间戳存在于 属性 值中。其实我有这个
输入
[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}
]
产出
[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 2015"
}
]
Javascript
var object = ary.map(function(o){
var result={}
// console.log(o)
for(i in o){
console.log(i+":"+o[i]) ;
if(o[i].indexOf(":")!=-1){
console.log("timestam present")
}
}
})
原始数组保持不变,结果应该在单独的数组中捕获。
这里是 link 到 fiddle.
您可以将 C
属性 拆分为 space,然后重新加入您想要保留的部分。试试这个:
for (var i = 0; i < ary.length; i++) {
var dateValues = ary[i].C.split(' ');
ary[i].C = dateValues[0] + ' ' + dateValues[1] + ' ' + dateValues[2] + ' ' + dateValues[5]
};
没有丑陋的字符串连接的替代方案:
for (var i = 0; i < ary.length; i++) {
var dateValues = ary[i].C.split(' ')
dateValues.splice(3, 2);
ary[i].C = dateValues.join(' ');
};
var ary = [
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}];
for (var i = 0; i < ary.length; i++) {
ary[i].C = ary[i].C.replace(/\d+:\d+:\d+\s*GMT\s*/g, '');
}
console.info(ary);
最好的办法是将日期解析为 Date 对象,然后重新格式化它。您可以随心所欲地格式化它,有或没有时间。有许多库可用于格式化日期。您声明您正在使用 jQuery,有一个日期格式插件。
我不建议您尝试将字符串分解成片段。有许多日期格式(您不指定此日期的来源)并且您的解决方案将来很容易停止工作。
var ary=[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}]
ary.map(function(o){
var d = new Date(o.C);
o.C = d.toDateString();
})
console.dir(ary)
输出
C: "Mon Apr 13 2015"
S: "Charge Interest Against Past Due Account"
C: "Mon Apr 13 2015"
S: "Charge Interest Against Past Due Account"
更新
要保留原始对象并在其他对象中获取结果,请使用以下代码。
var ary=[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}]
var a = ary.map(function(o){
var result = {};
var d = new Date(o.C);
result.S = o.S;
result.C = d.toDateString();
return result;
})
console.dir(a)
我正在尝试从我的对象中的 属性 之一中删除时间。实际上我检查:索引,如果时间戳存在于 属性 值中。其实我有这个
输入
[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}
]
产出
[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 2015"
}
]
Javascript
var object = ary.map(function(o){
var result={}
// console.log(o)
for(i in o){
console.log(i+":"+o[i]) ;
if(o[i].indexOf(":")!=-1){
console.log("timestam present")
}
}
})
原始数组保持不变,结果应该在单独的数组中捕获。
这里是 link 到 fiddle.
您可以将 C
属性 拆分为 space,然后重新加入您想要保留的部分。试试这个:
for (var i = 0; i < ary.length; i++) {
var dateValues = ary[i].C.split(' ');
ary[i].C = dateValues[0] + ' ' + dateValues[1] + ' ' + dateValues[2] + ' ' + dateValues[5]
};
没有丑陋的字符串连接的替代方案:
for (var i = 0; i < ary.length; i++) {
var dateValues = ary[i].C.split(' ')
dateValues.splice(3, 2);
ary[i].C = dateValues.join(' ');
};
var ary = [
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}];
for (var i = 0; i < ary.length; i++) {
ary[i].C = ary[i].C.replace(/\d+:\d+:\d+\s*GMT\s*/g, '');
}
console.info(ary);
最好的办法是将日期解析为 Date 对象,然后重新格式化它。您可以随心所欲地格式化它,有或没有时间。有许多库可用于格式化日期。您声明您正在使用 jQuery,有一个日期格式插件。
我不建议您尝试将字符串分解成片段。有许多日期格式(您不指定此日期的来源)并且您的解决方案将来很容易停止工作。
var ary=[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}]
ary.map(function(o){
var d = new Date(o.C);
o.C = d.toDateString();
})
console.dir(ary)
输出
C: "Mon Apr 13 2015"
S: "Charge Interest Against Past Due Account"
C: "Mon Apr 13 2015"
S: "Charge Interest Against Past Due Account"
更新
要保留原始对象并在其他对象中获取结果,请使用以下代码。
var ary=[
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:38:05 GMT 2015"
},
{
"S": "Charge Interest Against Past Due Account",
"C": "Mon Apr 13 10:35:05 GMT 2015"
}]
var a = ary.map(function(o){
var result = {};
var d = new Date(o.C);
result.S = o.S;
result.C = d.toDateString();
return result;
})
console.dir(a)