javascript之三位数的水仙花数、parseInt、push

文章目录


代码

function daffodilNumber() {
    
    
	let count = 0,
		arr = [];
	
	for (let i = 100; i < 999; i++) {
    
    
		let ge = i % 10,
			shi = parseInt(i / 10) % 10,
			bai = parseInt(i / 100),
			isDN = (ge * ge * ge + shi * shi * shi + bai * bai * bai) === i;
		
		if ((ge * ge * ge + shi * shi * shi + bai * bai * bai) === i) {
    
    
			count++;
			
			arr.push({
    
    
				id: 'id' + i,
				value: i
			});
		}
	}
	
	return {
    
     count, arr };
}

let {
    
     count, arr } = daffodilNumber();

console.log('水仙花的个数为: ', count);
// 水仙花的个数为:  4

arr.forEach(item => console.log('水仙花的数值为: ', item.value));
// 水仙花的数值为: 153
// 水仙花的数值为: 370
// 水仙花的数值为: 371
// 水仙花的数值为: 407

parseInt

MDN

parseInt(string, radix)解析一个字符串并返回指定基数的十进制整数,radix2-36之间的整数,表示被解析字符串的基数。
string
要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用ToString抽象操作)。字符串开头的空白符将会被忽略。
radix 可选
236的整数,表示进制的基数。例如指定16表示被解析值是十六进制数。如果超出这个范围,将返回NaN。假如指定0或未指定,基数将会根据字符串的值进行推算。=推算的结果不会永远是默认值10!文章后面的描述解释了当参数radix不传时该函数的具体行为。

w3school

parseInt()函数解析字符串并返回整数。
radix参数用于指定使用哪种数字系统,例如基数为16(十六进制)表示字符串中的数字应从十六进制数解析为十进制数。
如果radix参数被省略,JavaScript假定如下:
如果字符串以"0x"开头,则基数为16(十六进制)
如果字符串以"0"开头,则基数为8(八进制)。此特性已弃用
如果字符串以任何其他值开头,则基数为10(十进制)
只返回字符串中的第一个数字!
允许前导和尾随空格。
如果第一个字符不能转换为数字,parseInt()返回NaN
==旧浏览器将导致parseInt("010")8,因为旧版本的ECMAScriptECMAScript5旧当字符串以"0"开头时使用八进制基数 8作为默认值。从ECMAScript5开始,默认值为十进制基数 10


push

MDN

push方法将指定的元素添加到数组的末尾,并返回新的数组长度。


w3school

push方法向数组末尾添加新项目,并返回新长度。
新的项目将被添加到数组的末尾。
push方法会改变数组的长度。
如需在数组的开头添加项目,请使用unshift方法。

猜你喜欢

转载自blog.csdn.net/weixin_51157081/article/details/131757398
今日推荐