JavaScript:将json中的月份数字替换为月份名称
JavaScript: Replace month numbers with month name in json
我有几个月的json数据与月值eq。2015 - 01、2015 - 04"……并且我想将所有数值转换为"JAN","FEB"....根据月份分别由任何javascript函数。下面是实际的数组对象和所需的(I needed)数组对象。
var ActualData = [
{"month" : "2015-01", "val" : 230.67},
{"month" : "2015-04", "val" : 345.87},
{"month" : "2015-08", "val" : 455.78}
];
var monthsName = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG","SEP","OCT","NOV","DEC"];
var ExpectedData = [
{"month" : "JAN", "val" : 230.67},
{"month" : "APR", "val" : 345.87},
{"month" : "AUG", "val" : 455.78}
];
使用Array.prototype.map
:
var ExpectedData = ActualData.map(function(item){
return {
month: monthsName[parseInt(item.month.split('-')[1], 10) -1],
val: item.val
};
});
可以在数组上进行映射,从字符串中获取月份号,然后返回修改后的对象。
var ExpectedData = ActualData.map(function(obj) {
// Get month number from date-string and then substract 1
var monthNum = parseInt(obj.month.slice(-2)) - 1;
// Get month name from the array
obj.month = monthsName[monthNum];
// Return the object
return obj;
});
按照下面这些行应该可以工作:
var monName = monthsName[parseInt(ActualData[i].month.substring(ActualData[i].month.indexOf('-') + 1), 10) - 1]
如果你想构造ExpectedData,那么你可以使用这个:
for(var i = 0; i < ActualData.length; i++)
{
ExpectedData.push('month': monthsName[parseInt(ActualData[i].month.substring(ActualData[i].month.indexOf('-') + 1), 10) - 1], 'val': ActualData[i].val);
}
注意:这不是很优雅,但它完成了工作。
相关文章:
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 用数字单位替换字符串的一部分
- 替换字符串中的数字
- 正则表达式 jquery 将数字替换为链接
- 在 javascript 中,将数字之间出现的所有“-”替换为“:”
- 将字符串中的重复字符替换为不断增长的数字 [Javascript]
- Javascript正则表达式,用被操纵的数字替换数字
- 简单的ajax/尝试替换数字
- 用Javascript替换数字's小数
- Jquery/PunBB将数字替换为字符串
- 如何在谷歌可视化api柱状图中使用的json对象内用数字替换字符串值
- reg ex表达式,以查找并替换[]中的数字
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 通过jQuery替换数字,而不更改样式中的数字或其他所有内容
- JS用正则表达式替换数字
- 用Javascript中的计算替换数字
- 替换数字周围的字符串
- 使用正则表达式替换数字
- 如何用for循环中的条件语句替换数字?
- json_encode替换数字的特定字符串(对于 flot.js)