對象、字符串轉爲數組,對象字符化,字符對象化

將對象、字符串轉爲數組常用的幾種方法有:

1. [].slice.call(對象名、數組名);

2. Array.from(對象名、數組名);

    看着很簡單的樣子,但是實際操作很容易就掉坑裏了!!!我就是從坑裏爬出來纔來寫的這篇博客!說多了都是淚,不費話了,看下面的例子:

var myJson = {
            name : "張三",
            age : 21,
            sex : "男"
        }
上面的代碼是絕壁正確的,語法也沒有任何錯誤,但你會發現無論使用[].slice.call(對象名、數組名); 還是 Array.from(對象名、數組名); 拿到的都是空數組!這就是所說的坑,這兩個東西有個隱性要求,對象中必須要有 length 鍵值對,其餘 鍵名 還必須是數字。
var myJson = {
            length : 2,
            0 : 1,
            1 : "a"
        }
心想老子就用字符當鍵名行不行呢?!!
var Json = {
            length : 2,
            "z" : 1,
            1 : 2
        }

分別是console.log([].slice.call(Json));   console.log(Array.from(Json)); 的結果。

顯而易見。。。胳膊是拗不過大腿的

再來看 字符串轉數組

var str2 = "123456"
    console.log([].slice.call(str2));
    console.log(Array.from(str2));

結果好生令人感動,字符串轉數組還是很圓滾的。

那麼,還有就是參數轉爲數組

function fn() {
            var temp = [].slice.call(arguments);
            console.log(temp);
        }
fn(1,2,3,"a","se");

也是那麼的圓滾,記住 參數中的字符串要用引號引起來 這一點就好了!

第二大專題

JSON.stringify();  把對象字符化  和    JSON.parse();  把字符對象化

    之所以要將對象字符化,是因爲有些地方這會給你顯示一個[Object object],但你想讓他顯示對象內容就要將其字符化了。

比如:alert(obj);   alert某對象時就會顯示[Object object]。

但當你 alert(JSON.stringify(obj));  時,就會顯示對象裏面的 鍵值對 了。

    JSON.parse(); 也是有嚴格的語法要求!!!注意了,有是一個坑。。一不小心掉進去都不知道爲毛會這樣

var str = '{"a":1,"b":2}';

語法要求: 整個字符串用 單引號,字符串裏面對象的 鍵 用雙引號


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章