我是2楼的,今天看了看昨天写的代码,觉得timeFormat()这个函数写的可扩展性不好,虽然题意中,生成的excel表格中的通信时长单位无非就是:小时、分、秒,但是我在2楼写的那个函数中用if...else将逻辑写死总觉得怪怪的。所以这里把这个方法抽象成一下,写一个自我感觉好维护的的方法,如果牛友们还有好的代码,欢迎留言交流哇(这里就只贴这个方法的改进,一个小的demo,放到整体代码中稍作调整即可):
var arr = [
	{'通信时长': '5小时03分01秒'},
	{'通信时长': '47秒'},
	{'通信时长': '1小时'},
	{'通信时长': '03分20秒'},
	{'通信时长': '2小时13分'}
];
var timeArr = [];   // 存储‘通信时长’的数组
var step = ['小时', '分', '秒'];
var saveArr = [];   // 存储分隔好的‘通信时长’的数组
function timeFormat(arr) {
    var parseTime = {};

    for(var j=0 ; j<arr.lengt敏感词imeArr.push(arr[j]['通信时长']);
    }
    console.log(timeArr);
    for(var i=0 ; i<timeArr.length ; i++) {
	var currentItem = timeArr[i];

	for(var k=0 ; k<step.length ; k++) {
	    var currentStep = step[k];

	    if(currentItem.indexOf(currentStep) > -1) {
		var currentVaule = currentItem.split(currentStep)[0];
		parseTime[currentStep] = currentVaule;
		currentItem = currentItem.split(currentStep)[1];
	    }
	}
	saveArr.push(parseTime);
	parseTime = {};
    }
    return saveArr;
}
console.log(timeFormat(arr));
效果:

js,只要是它在数组和对象中了,一切存取就迎刃而解喽,哈哈~~