字符串與JSON

1时鸵、使用數(shù)組拼接出如下字符串

var prod = {
    name: '女裝',
    styles: ['短款', '冬季', '春裝']
};
function getTpl(data){
//todo...
};
var result = getTplStr(prod);  //result為下面的字符串
<dl class="product">
    <dt>女裝</dt>
    <dd>短款</dd>
    <dd>冬季</dd>
    <dd>春裝</dd>
</dl>
function getTplStr(data) {
            var str = "";
            for (var key in data) {
                if (typeof data[key] === "object") {
                    var newObj = [];
                    for (var i = 0; i < data[key].length; i++) {
                        str = str + "\t<dd>" + newObj.push(data[key][i]) + "<dd>\n"
                    }
                } else {
                    str = str + "\t<dt>" + data[key] + "<dt>\n"

                }
            }
            return '<dl class="product">' + "\n" + str + '<dl>';
        };
        var result = getTplStr(prod);
        console.log(result)
      var prod = {
            name: '女裝',
            styles: ['短款', '冬季', '春裝']
        };
        function getTplStr(data) {
            var arr=[]; 
    arr.push('<dl class="product">\n')
    arr.push('\t<dt>'+data.name+'</dt>\n')
    for(var key in data.styles){
    arr.push('\t<dd>'+data.styles[key]+'</dd>\n');

    }
    arr.push('</dl>');
    return arr.join("")
        };
        var result = getTplStr(prod);
        console.log(result)

2、寫出兩種以上聲明多行字符串的方法
利用連接運(yùn)算符(+)可以連接多個(gè)單行字符串曹体,用來模擬多行字符串俗扇。

var strs = "long "
    +"long "
    +"long "; // "long long long "

利用多行注釋,生成多行字符串的變通方法箕别。
利用 .toString()方法類型轉(zhuǎn)換為字符串铜幽,利用.split('\n')方法,用空格分割成子字符串串稀,轉(zhuǎn)化為數(shù)組除抛,利用 .slice(1,-1) 方法,由子字符串的“ 1 ”位置開始母截,到最后一個(gè)位置之前到忽,得到一個(gè)新的數(shù)組。再利用.join("")方法清寇,將所有元素喘漏,連接成一個(gè)字符串。
示例:

(function () { /*
line 1
line 2
line 3
*/}).toString().split('\n').slice(1,-1).join("")

3颗管、補(bǔ)全如下代碼,讓輸出結(jié)果為字符串: hello\\饑人谷

var str =' hello\\\\饑人谷';
console.log(str)

4陷遮、以下代碼輸出什么?為什么

var str = 'jirengu\nruoyu'
console.log(str.length)

結(jié)果:數(shù)值13;

var str = 'jirengu\nruoyu'
console.log(str)

輸出字符串
' jirengu ruoyu'
length屬性返回字符串的長(zhǎng)度垦江。str.length返回值是13帽馋。
5、寫一個(gè)函數(shù)比吭,判斷一個(gè)字符串是回文字符串绽族,如 abcdcba是回文字符串, abcdcbb不是

function isPalindrome(string){
     return string===string.split().reverse().join("")
}
isPalindrome('abcdcba')//  true

.split()方法是將String對(duì)象轉(zhuǎn)化為一個(gè)字符串?dāng)?shù)組;
.reverse()方法衩藤,顛倒數(shù)組中元素的位置吧慢。第一個(gè)元素會(huì)成為最后一個(gè),最后一個(gè)會(huì)成為第一個(gè)赏表。检诗;
join(''")方法將數(shù)組的所有元素連接到一個(gè)字符串中匈仗。
6、寫一個(gè)函數(shù)逢慌,統(tǒng)計(jì)字符串里出現(xiàn)出現(xiàn)頻率最多的字符

var str1 = 'hello pralindrom hell';
        //fn(str1);
        function fn(str){

            var dirc = {};
            for (var i = 0; i < str.length; i++) {
                if (dirc[str[i]]) {
                    ++dirc[str[i]]
                } else {
                    dirc[str[i]] = 1;
                }
            }
            
            var count = 0;
            for (var key in dirc) {
                if (dirc[key] > count) {
                    var maxcharset = key;
                    count = dirc[key];
                }
            }
            //return maxcharset;
            //return count;
            console.log(maxcharset,count)
        }
        console.log(fn(str1))

7悠轩、寫一個(gè)camelize函數(shù),把my-short-string形式的字符串轉(zhuǎn)化成myShortString形式的字符串攻泼,如

camelize("background-color") == 'backgroundColor'
camelize("list-style-image") == 'listStyleImage'
      var str1 = 'my-short-string'
            function camlize(str) {
                for (var i = 0; i < str.length; i++) {
                    if (str[i] === '-') {
                        var str3 = str.substr((i + 1), 1).toUpperCase();
                        var str4 = str4 + str3;
                        i++;
                    } else {
                        if (str4 === undefined) {  //1 **代碼優(yōu)化火架,在for循環(huán)之前加個(gè)**
                            var str4 = str[i]             //2 var str4 = ""; 
                        } else {                             //3 
                            str4 = str4 + str[i]         //4, 換成str4 +=str[i];
                        }
                    }
                }
                return str4
            }
            camlize(str1);
            console.log(camlize(str1))

這題寫了一個(gè)多小時(shí)忙菠,邊寫邊改何鸡,終于改對(duì)了。突然發(fā)現(xiàn)牛欢,編程就是一個(gè)編寫邊改的過程骡男,痛苦的是不知道怎么改,要想好久氢惋。
8洞翩、寫一個(gè) ucFirst函數(shù)稽犁,返回第一個(gè)字母為大寫的字符 (*
ucFirst("hunger") == "Hunger"

var str1 = "hunger"
function ucFirst(str){
var str2 = str.slice(0, 1).toUpperCase()+str.slice(1);
return str2;
}
var str2=ucFirst(str1)
console.log(str2)

9焰望、寫一個(gè)函數(shù)truncate(str, maxlength), 如果str的長(zhǎng)度大于maxlength,會(huì)把str截?cái)嗟絤axlength長(zhǎng)已亥,并加上...熊赖,如

var str1 = "hello, this is hunger valley,";

        var str2 = "hello world"

        truncate(str1, 10)
        truncate(str2, 20)
        function truncate(str, maxlength) {
            if (str.length > maxlength) {
                var str = str.slice(0, maxlength).concat('...');
            } else {
                var str = str.slice(0, maxlength)
            }
            return str;
        }
        var str3 = truncate(str1, 10)
        var str4 = truncate(str2, 20)
        console.log(str3)
        console.log(str4)

10、什么是 json虑椎?什么是 json 對(duì)象震鹉?什么是 json 對(duì)象字面量?什么是 JSON內(nèi)置對(duì)象捆姜?

JSON:(JavaScript Object Notation的縮寫)是一種用于數(shù)據(jù)交換的文本格式传趾。
JSON格式有兩個(gè)顯著的優(yōu)點(diǎn):書寫簡(jiǎn)單,一目了然泥技;符合JavaScript原生語法浆兰,可以由解釋引擎直接處理,不用另外添加解析代碼珊豹。
JSON對(duì)象就是一個(gè)值簸呈。要么是簡(jiǎn)單類型的值,要么是復(fù)合類型的值店茶,但是只能是一個(gè)值蜕便,不能是兩個(gè)或更多的值。

JSON對(duì)值的類型和格式有嚴(yán)格的規(guī)定贩幻。

1轿腺、復(fù)合類型的值只能是數(shù)組或?qū)ο罅阶欤荒苁呛瘮?shù)、正則表達(dá)式對(duì)象族壳、日期對(duì)象溶诞。
2、簡(jiǎn)單類型的值只有四種:字符串决侈、數(shù)值(必須以十進(jìn)制表示)螺垢、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
3赖歌、字符串必須使用雙引號(hào)表示枉圃,不能使用單引號(hào)。
4庐冯、對(duì)象的鍵名必須放在雙引號(hào)里面孽亲。
5、數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面展父,不能加逗號(hào)返劲。

json對(duì)象字面量

json對(duì)象字面量是一種簡(jiǎn)單的聲明生成json的方式,形式是一個(gè)無序的“名稱/值對(duì)”集合栖茉。一個(gè)json對(duì)象以“{”(左括號(hào))開始篮绿,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào))吕漂;“名稱/值對(duì)”之間使用“,”(逗號(hào))分隔亲配。

JSON內(nèi)置對(duì)象

JSON內(nèi)置對(duì)象是用來處理JSON格式數(shù)據(jù)。它有兩個(gè)方法:JSON.stringify()和JSON.parse()惶凝。
JSON.stringify方法用于將一個(gè)值轉(zhuǎn)為字符串吼虎。該字符串符合 JSON 格式,并且可以被JSON.parse方法還原苍鲜。
JSON.parse方法用于將JSON字符串轉(zhuǎn)化成對(duì)象思灰。

11、如何把JSON 格式的字符串轉(zhuǎn)換為對(duì)象混滔?如何把對(duì)象轉(zhuǎn)換為 JSON 格式的字符串?
JSON.parse方法用于將JSON字符串轉(zhuǎn)化成對(duì)象洒疚。
JSON.stringify方法用于將一個(gè)值轉(zhuǎn)為字符串。
示例:

JSON.parse('{"foo":12,"nihao":"yy"}')
Object {foo: 12, nihao: "yy"}
JSON.stringify({foo: 12, nihao: "yy"})
"{"foo":12,"nihao":"yy"}"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遍坟,一起剝皮案震驚了整個(gè)濱河市拳亿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愿伴,老刑警劉巖肺魁,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異隔节,居然都是意外死亡鹅经,警方通過查閱死者的電腦和手機(jī)寂呛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘾晃,“玉大人贷痪,你說我怎么就攤上這事”奈螅” “怎么了劫拢?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)强胰。 經(jīng)常有香客問我舱沧,道長(zhǎng),這世上最難降的妖魔是什么偶洋? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任熟吏,我火速辦了婚禮,結(jié)果婚禮上玄窝,老公的妹妹穿的比我還像新娘牵寺。我一直安慰自己,他們只是感情好恩脂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布歹篓。 她就那樣靜靜地躺著狂芋,像睡著了一般妒峦。 火紅的嫁衣襯著肌膚如雪唯竹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天典阵,我揣著相機(jī)與錄音,去河邊找鬼镊逝。 笑死壮啊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的撑蒜。 我是一名探鬼主播歹啼,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼座菠!你這毒婦竟也來了狸眼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤浴滴,失蹤者是張志新(化名)和其女友劉穎拓萌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體升略,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡微王,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年屡限,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炕倘。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钧大,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出罩旋,到底是詐尸還是另有隱情啊央,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布涨醋,位于F島的核電站劣挫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏东帅。R本人自食惡果不足惜压固,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靠闭。 院中可真熱鬧帐我,春花似錦、人聲如沸愧膀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檩淋。三九已至芬为,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蟀悦,已是汗流浹背媚朦。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留日戈,地道東北人询张。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像浙炼,于是被迫代替她去往敵國(guó)和親份氧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 0弯屈、對(duì)于 HTTP 協(xié)議而言蜗帜,HTML、CSS资厉、JS厅缺、JSON 的本質(zhì)都是什么? HTML就是符合HTML語法的字...
    怎么昵稱閱讀 1,596評(píng)論 0 3
  • 一、代碼習(xí)題 1.使用數(shù)組拼接出如下字符串 店归,其中styles數(shù)組里的個(gè)數(shù)不定 2.寫出兩種以上聲明多行字符串的方...
    徐國(guó)軍_plus閱讀 452評(píng)論 0 1
  • 1阎抒,對(duì)于 HTTP 協(xié)議而言,HTML消痛、CSS且叁、JS、JSON 的本質(zhì)都是什么秩伞? 對(duì)于HTTP協(xié)議而言逞带,html、...
    進(jìn)擊的前端_風(fēng)笑影閱讀 775評(píng)論 0 0
  • 1.使用數(shù)組拼接出如下字符串 };```function getTpl(data){var arr = "";fo...
    湖衣閱讀 314評(píng)論 0 0
  • Q版鹿晗! 擇天記里面的鹿晗脸爱。 看一位簡(jiǎn)友畫過遇汞,臨摹一下。 線稿簿废。 彩鉛是24色晨光空入,有點(diǎn)low了。 跟人家還有差...
    Flying_Sands閱讀 482評(píng)論 2 4