JS內建物件——字串物件
阿新 • • 發佈:2022-05-17
/* 字串的不可變,指的是裡面的值不可變。雖然看上去可以改變內容,但其實是地址變了,記憶體中新開闢了一個記憶體空間。
字串所有的方法,都不會修改字串本身(字串是不可變的) ,操作完成會返回一一個新的字串。 */
// 1、查詢索引號 var str = '改革春風吹滿地,春天來了'; console.log(str.indexOf('春', 3));//從索引3的位置開始找, /* 案例:查詢字串”abcoefoxyozzopp"中所有o出現的位置以及次數 核心演算法:先查詢第一個o出現的位置 然後只要indexOf 返回的結果不是-1就繼續往後查詢 因為indexOf只能查詢到第一個,所以後面的查詢,一定是當前索引加1,從而繼續查詢 */ var str1 = 'oabcoefoxyozzopp'; var index = str1.indexOf('o'); var num = 0; while (index !== -1) { console.log(index); num++; index = str1.indexOf('o', index + 1); } console.log('o出現的次數是: ' + num); //2、根據位置返回字元 console.log(str.charAt(3)); console.log(str.charCodeAt(3)); //返回相應索引號的字元ASCII值目的:判斷使用者按 下了那個鍵 console.log(str[0]); //h5新增 //案例:判斷一個字串' abcoefoxyozzopp'中出現次數最多的字元,並統計其次數。 /* 核心演算法:利用charAt()遍歷這個字串 把每個字元都儲存給物件,如果物件沒有該屬性,就為1,如果存在了就+1 遍歷物件,得到最大值和該字元*/ var str = 'abcoefoxyozzopp'; var o = {}; for (var i = 0; i < str.length; i++) { var chars = str.charAt(i); // chars是字串的每一一個字元 if (o[chars]) { // o[chars] 得到的是屬性值 o[chars]++; } else { o[chars] = 1; } } console.log(o); // 遍歷物件 var max = 0; var ch = ''; for (var k in o) { if (o[k] > max) { max = o[k]; // o[k] 得到的是屬性值 ch = k; // k得到是屬性名 } } console.log(max); console.log('最多的字元是' + ch); //3、拼接concat console.log(str.concat('red')); //4、擷取 console.log(str.substr(2, 2)); //從索引2的位置開始,擷取2個 // 5、替換 console.log(str1.replace('o', 'b')); //把o替換成b,只替換第一個o // 6、字串轉為陣列 var str2 = 'c,java,js,css' console.log(str2.split(','));