- 字符串的操作
给定一个字符串 "qwertyuiop123445pqqQq",问题如下:
- a. 字符串的长度;
- b. 取出指定位置的字符,如: 0,3,5,9 等;
- c. 查找指定字符是否在以上字符串中存在;
- d. 替换指定的字符,如:q 替换为 22;
- e. 截取指定开始位置到结束位置的字符串,如:取得 1-5 的字符串;
- f. 找出以上字符串中出现次数最多的字符和出现的次数;
- g. 遍历字符串,并将遍历出的字符两头添加符号“@”输出。
解析:
a. 字符串的长度
console.log(str.length); // 21
b. 取出指定位置的字符,如: 0,3,5,9 等
console.log(str[0], str[3], str[5], str[9]); // q r y p
c. 查找指定字符是否在以上字符串中存在
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
如果没有找到该字符串,就返回-1
function haveOr(s) {
if (str.indexOf(s) == -1) {
console.log("该字符不存在");
} else {
console.log("该字符存在");
}
}
haveOr("s") // 该字符不存在
haveOr("q") // 该字符存在
d. 替换指定的字符,如:q 替换为 22
replace() 方法用于在字符串中用一些字符替换另一些字符
或替换一个与正则表达式匹配的子串
// 只替换第一个匹配的字符
console.log(str.replace('q', '22')); // 22wertyuiop123445pqqQq
// 替换所有匹配的字符串
console.log(str.replace(/\q/g, '222')); // 222wertyuiop123445p222222Q222
e. 截取指定开始位置到结束位置的字符串,如:取得 1-5 的字符串
slice() 方法可从已有的数组中返回选定的元素
console.log(str.slice(1, 5)); // wert
f. 找出以上字符串中出现次数最多的字符和出现的次数
var arrStr = str.split(""); // 将字符串转换为数组
// 便历转换得到的数组,把数组中每个元素对应出现的个数计算出来
var newArr = [];
for (var i = 0; i < arrStr.length; i++) {
if (newArr[arrStr[i]]) {
newArr[arrStr[i]] += 1;
} else {
newArr[arrStr[i]] = 1;
}
}
// 便历存放数组元素个数的数组,将出现次数最多的元素及出现次数循环出来
var mostStr = ""; // 出现最多的元素
var mostNum = 1; // 出现的个数
for (var k in newArr) {
if (newArr[k] > mostNum) {
mostNum = newArr[k];
mostStr = k;
}
}
console.log("出现次数最多的元素是:" + mostStr + ";" + "出现" + mostNum + "次"); // 出现次数最多的元素是:q;出现4次
g. 遍历字符串,并将遍历出的字符两头添加符号“@”输出
var strArr = str.split("")
var newStr = "";
for (var i = 0; i < strArr.length; i++) {
var newChar = "@" + strArr[i] + "@;";
newStr += newChar
}
console.log(newStr); // @q@;@w@;@e@;@r@;@t@;@y@;@u@;@i@;@o@;@p@;@1@;@2@;@3@;@4@;@4@;@5@;@p@;@q@;@q@;@Q@;@q@;
- 日期对象的操作
根据当前日期进行以下方面的处理:
- a. 取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式如 : 2018年11月14日14时40分20秒。
- b. 根据日期的不同时间段,做问候语:
早上 8:00-12:00 : “早上好!”
中午 12:00-14:00 :“中午好!”
下午 14:00-18:00 :“下午好!”
晚上 19:00-00:00 :“晚上好!” - c. 计算当前时间向前、向后(一天、一个月)的日期,并取出是星期几。
解析:
a. 取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式如 : 2018年11月14日14时40 分20秒
b. 根据日期的不同时间段,做问候语:
早上 8:00-12:00 : “早上好!”
中午 12:00-14:00 :“中午好!”
下午 14:00-18:00 :“下午好!”
晚上 19:00-00:00 :“晚上好!”
function getDate() {
var dateTime = new Date();
var year = dateTime.getFullYear();
var month = dateTime.getMonth() + 1;
var date = dateTime.getDate();
var hours = dateTime.getHours();
var minutes = dateTime.getMinutes();
var seconds = dateTime.getSeconds();
var day = dateTime.getDay();
var dateStr = year + "年" + month + "月" + date + "日" + hours + "时" + minutes + "分" + seconds + "秒";
var dateDom = document.getElementById("date");
dateDom.innerHTML = dateStr;
var greetings = "";
var message = document.getElementById("message");
if (hours >= 8 && hours < 12) {
greetings = "早上好!";
} else if (hours >= 12 && hours < 14) {
greetings = "中午好!";
} else if (hours >= 14 && hours < 18) {
greetings = "下午好!";
} else {
greetings = "晚上好!";
}
message.innerHTML = greetings;
}
setInterval("getDate()", 100);
c. 计算当前时间向前、向后(一天、一个月)的日期,并取出是星期几。
var dateTime2 = new Date();
dateTime2.setDate(dateTime2.getDate() - 1);
var year2 = dateTime2.getFullYear();
var month2 = dateTime2.getMonth() + 1;
var date2 = dateTime2.getDate();
var day2 = dateTime2.getDay();
var weekArr = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
console.log("前一天是" + year2 + "年" + month2 + "月" + date2 + "日" + weekArr[day2]);
- 执行数学任务
建立两个函数,一个函数是中学二次函数(y= (2/5)x^2 + (9/10)x - 15 )表达式的计算方法;
另一个函数是给定任意的若干个 x 值,调用前一个函数计算 y 对应的值,并使用( x,y)方式输出每个值得计算结果计算结果。
function quadraticFun(x) {
this.x = x;
return y = ((2 / 5) * Math.pow(x, 2) + (9 / 10) * x - 15);
}
console.log(quadraticFun(10)); // 34
function dyFun(arr) {
for (var i = 0; i < arr.length; i++) {
console.log("(" + arr[i] + "," + quadraticFun(i) + ")");
}
}
dyFun([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
// (0,-15)
// (1,-13.7)
// (2,-11.6)
// (3,-8.7)
// (4,-5)
// (5,-0.5)
// (6,4.800000000000001)
// (7,10.900000000000002)
// (8,17.800000000000004)
// (9,25.5)
// (10,34)
- 使用二重循环打印九九乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write(i + "*" + j + "=" + i * j + " ");
}
document.write("<br>")
}
未完待续......
网友评论