1.startWith方法:用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false
运用举例:
var str = "world"
console.log(str.startsWith('wor'))//输出true
console.log(str.startsWith('ld'))//输出false
2.endsWith方法:用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false
运用举例:
var str = "world"
console.log(str.endsWith('ld'))//输出true
console.log(str.endsWith('wor'))//输出false
3.对startsWith 方法 的深入理解:
1.startsWith方法在MWD中的实现:
if (!String.prototype.startsWith) {
Object.defineProperty(String.prototype, 'startsWith', {
value: function(search, pos) {
pos = !pos || pos < 0 ? 0 : +pos;
return this.substring(pos, pos + search.length) === search;
}
});
}
2.自己写的实现代码:
function startswith(Resource, Target) {
let R = Resource.split('')
let T = Target.split('')
for (let i=0; i < T.length; i++) {
if (T[i] != R[i]) {
return false
}
}
return true
}
4.对 endsWith方法 的深入理解:
1.endsWith方法在MWD中的实现:
if (!String.prototype.endsWith) {
String.prototype.endsWith = function(search, this_len) {
if (this_len === undefined || this_len > this.length) {
this_len = this.length;
}
return this.substring(this_len - search.length, this_len) === search;
};
}
2.自己写的实现代码:
function endswith(Resource, Target) {
let R = Resource.split('')
let T = Target.split('')
let len = Resource.length - Target.length
for (let i=0; i < T.length; i++) {
if (T[i] != R[i + len]) {
return false
}
}
return true
}
5.编程题运用:
题目:在一个全是整数的数组中判断出是否存在一个数为另一个数的前缀,如果存在,返回true,如果不存在,返回false
例子:
1.
输入:[2443,345,4656,4332,6464]
输出:false
原因:不存在一个数为另一个数的前缀
2.
输入:[2,2548,1234594,126845]
输出:true
原因:2为2548的前缀
解题思路:将整数化为字符串,以字符串逐个用startsWith比较是否为以该字符串开头。
var a = [2,2548,1234594,126845]
var aLen = a.length
for (let i=0; i < a.length; i++) {
a[i] = a[i] + ''
}
let result = false
for (let i=0; i < aLen; i++) {
for (let j=i+1; j < aLen; j++) {
if(a[j].startsWith(a[i])) {
result = true
break
}
}
}
console.log(result)//输出true