js / jQuery - 将数组转换为字符串

时间:2014-03-05 20:50:40

标签: javascript jquery html arrays local-storage

我用来存储到本地存储的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);

    }

4 个答案:

答案 0 :(得分:1)

将数组转换为字符串的最简单方法是array.join()。就像这样调用你得到一个逗号分隔的字符串,其中包含数组中的所有元素。如果提供分隔符(例如array.join('|')),则会得到一个字符串,该字符串用您提供的分隔符分隔。这适合您的保存功能取决于您。

答案 1 :(得分:0)

我建议使用jQuery.encodeJSON()

http://forum.jquery.com/topic/jquery-encodejson

这样您就可以将对象存储为JSON字符串。

然后,您可以使用jQuery.parseJSON()函数返回对象。

https://api.jquery.com/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 :
         }
}