我正在使用amsul datepicker javscript库。 我想要所选日期的事件对象。 目前我的代码是
$('#inputDate')
.attr('data-value', "2014-5-14");
DatepickerObject = $('#inputDate').pickadate({
'today' : '',
'close' : '',
'clear' : '',
onOpen : function() {
},
onSet : function() {
},
});
我想获得选定的对象触摸位置。例如,如果我选择任何日期,我想要所选日期的坐标。即x&年。请帮帮我。 即如果假设默认选择任何日期,我想要x& y职位。
答案 0 :(得分:2)
使用.split
按分隔符(在您的情况下为逗号)拆分字符串,然后获取令牌并使用parseInt
将其转换为number
并将其添加到阵列。
var arr = ["2014,11,6","2014,12,6"];
var result = [];
var tokens = null;
for (var i = 0; i < arr.length; i++) {
tokens = arr[i].split(',');
result.push(parseInt(tokens[0], 10)); //first word
result.push(parseInt(tokens[1], 10) - 1); //2nd
result.push(parseInt(tokens[2], 10)); //3rd
}
alert(result.join(' '));
&#13;
答案 1 :(得分:2)
让我们一步一步。这是最初的数组:
var arr = ["2014,11,6","2014,12,6"]
首先,在逗号上拆分字符串:
var components = arr.map(function(s) { return s.split(/,/); });
//=> [ [ "2014", "11", "6" ], [ "2014", "12", "6" ] ]
现在将字符串转换为数字并减少每个三元组的中间字符:
var decremented = components.map(function(a) { return [a[0]-0,a[1]-1,a[2]-0]; });
//=> [ [ 2014, 10, 6 ], [ 2014, 11, 6 ] ]
最后,将其展平为一个连续数组而不是两个数组的数组:
var flattened = [].concat.apply([], decremented);
//=> [ 2014, 10, 6, 2014, 11, 6 ]
答案 2 :(得分:0)
可以使用map()
功能。例如:
var ar = ["2014,11,6","2014,12,6"],
newArr = [];
ar.map(function(obj){
var temp = obj.split(',');
newArr.push(parseInt(temp[0], 10));
newArr.push(parseInt(temp[1], 10) - 1);
newArr.push(parseInt(temp[2], 10));
});
console.log(newArr);
答案 3 :(得分:0)
您可以在每个缩小步骤中使用Array.reduce()
:
var data = ["2014,11,6","2014,12,6"];
var result = data.reduce(function(final, current) {
var parts = current.split(',');
final.push(+parts[0], parts[1]-1, +parts[2]);
return final;
}, []);
console.log(result);
答案 4 :(得分:0)
这是第一个答案的变化,更快更清晰。
var arr = ["2014,11,6","2014,12,6"];
var result = [];
arr.forEach(function(item) {
item.split(",").forEach(function(x){result.push(parseInt(x))});
});