JavaScript-判断一个字符串是否为另一个字符串的前缀或后缀(startsWith方法与endsWith方法)

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值