我用来存储到本地存储的2个下拉列表存储为数组。 如果检测到任何数组,我怎么能转换它然后转换它并将其存储为字符串?
这样的东西?
if( Object.prototype.toString.call( value ) === '[object Array]' ) {
value.toString();
}
请看我的小提琴:http://jsfiddle.net/3u7Xj/137/
显示存储为:http://i.imgur.com/L78kGE7.jpg
本地存储功能:
save = function () {
$('input, select, textarea').each(function () {
var value = $(this).val();
var name = $(this).attr('name');
if($(this).hasClass('checkers')){
value = $(this).is(":checked")
if(value){
value='on';
}else{
value='off';
}
}
if(this.name.match(/^multiselect_/)){//removes buggy append
return false;
}
console.log('Saving');
console.log(name + ':' + value);
Survey[name] = value;
});
if (localStorage.getObj('Surveys') != null) {
Surveys = localStorage.getObj('Surveys');
}
Surveys[$('#FirstName').val() + '.' + $('#LastName').val()] = Survey; //store in big list
localStorage.setObj('Surveys', Surveys);
}
答案 0 :(得分:1)
将数组转换为字符串的最简单方法是array.join()。就像这样调用你得到一个逗号分隔的字符串,其中包含数组中的所有元素。如果提供分隔符(例如array.join('|')),则会得到一个字符串,该字符串用您提供的分隔符分隔。这适合您的保存功能取决于您。
答案 1 :(得分:0)
我建议使用jQuery.encodeJSON()
http://forum.jquery.com/topic/jquery-encodejson
这样您就可以将对象存储为JSON字符串。
然后,您可以使用jQuery.parseJSON()函数返回对象。
答案 2 :(得分:0)
如果我理解正确,我想这可行:
使用Array.isArray方法,然后使用JSON.stringify将数组转换为字符串。
答案 3 :(得分:0)
for (var key in this) {
//console.log(key, this[key]); //log to console
if($.isArray(this[key])) {
this[key] = this[key].join(':'); //change array to string separated by :
}
}