我从ajax获得响应为json:
{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}
我需要在诸如2017-05-11,2017-05-18等的javascript中分隔这些值。
我在javascript中尝试过分割功能,但失败了。我如何实现它?
我需要在循环中单独使用日期。
答案 0 :(得分:2)
使用JSON.parse
方法解析JSON字符串,并获取保存数组的属性。
var dates = JSON.parse(respose_data).checkin_date
// or
var dates = JSON.parse(respose_data)['checkin_date']
如果它是一个对象,则直接访问该属性。
var dates = respose_data.checkin_date
// or
var dates = respose_data['checkin_date']
UPDATE:现在使用Array#forEach
或简单的for循环迭代数组。
dates.forEach(function(v){
console.log(v);
})
// or
for(var i = 0;dates.length < i; i++){
console.log(dates[i]);
})
答案 1 :(得分:1)
您只需使用JSON的方法解析。之后,您将收到属性&#34; checkin_date&#34;的数组值。只需将它用作普通数组即可。请参阅以下代码:
var json = '{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}';
var result = JSON.parse(json);
var checkin_date = result['checkin_date'];
for(var i=0; i<checkin_date.length; i++){
console.log(checkin_date[i]);
}
&#13;
答案 2 :(得分:0)
您可以使用箭头功能执行简单的解决方案:
const json = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}
json.checkin_date.map((date) => date)
如果您需要在ES6之前的JavaScript上使用它,请执行以下操作:
var json = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}
json.checkin_date.map(function(date) { return date })
两种方式都会返回循环中的所有日期。
答案 3 :(得分:0)
你可以:
JSON.parse()
将您的请求内容解析为JavaScript对象。checkin_date
。
let respose_data = '{"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]}';
let dates = JSON.parse(respose_data).checkin_date;
dates.forEach(date=> console.log(date))
的更多信息
答案 4 :(得分:0)
如果需要将每个值循环作为日期,首先需要转换值。看看:
var dates = {"checkin_date":["2017-05-11","2017-05-18","2017-05-23","2017-05-25"]};
dates
.checkin_date
.map(date => new Date(date)) // here you convert the string dates to values of type Date
.forEach(date => console.log(date)) // here you loop through every Date and do whatever you want, in this case I just logged the output.