JavaScript-判断一个字符串是否为另一个字符串的前缀或后缀(startsWith方法与endsWith方法)
  atkf93b5jRS1 2023年12月09日 35 0

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
			}
		}
	}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月09日 0

暂无评论

推荐阅读
atkf93b5jRS1