如何用js把字符串转化为整型?

JavaScript07

如何用js把字符串转化为整型?,第1张

方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

1. 转换函数:

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN。

2. 强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。

ECMAScript中可用的3种强制类型转换如下:

Boolean(value)——把给定的值转换成Boolean型;

Number(value)——把给定的值转换成数字;

String(value)——把给定的值转换成字符串。

用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

3. 利用js变量弱类型转换

1、先用js定义一个变量,就是一个字符串的变量,如图,字符串用逗号隔开。

2、要把字符串转化成数据,我们可以使用JS内置的方法,split方法就行了,这个方法要注意的地方,就是参数,由于字符串是用逗号隔开的,参数就输入逗号就行了。

3、为了验证效果,可以把结果输出到控制台上,使用console.log方法,把结果输出就行了。

在4、脚本里,直接调用刚才的方法,当页面打开后,就会直接执行。

5、打开浏览器的开发者工具,点击‘控制台’。

6、在这里就可以看到输出的结果了,可以看到这个结果就是一个数组。

7、点击展开这个数组,可以看到数组每一项的内容。

Object.keys()

Object.keys 返回一个所有元素为字符串的数组,其元素来自于从给定的object上面可直接枚举的属性。这些属性的顺序与手动遍历该对象属性时的一致。

例如:

let obj = {

name: 'haha',

age: 20,

showName: function () {}

}

Object.keys(obj) //['name','age','showName']

处理数组时,返回数组各元素的索引值:

let arr = ['a', 'b', 'c']

Object.keys(arr)// ['0', '1', '2']

let brr = [1, 3, 4]

Object.keys(brr)// ['0', '1', '2']

可自动排序:

let arr = { 100: 'a', 2: 'b', 7: 'c' }

console.log(Object.keys(arr))// console: ['2', '7', '100']

组合用法:

let obj = {

name: 'haha',

age: 20,

}

Object.keys(obj).map((val, index)=>{

obj[val] // 可以针对obj的不同属性做不同处理

})

Object.values()

Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。

例如:

let obj = {

name: 'haha',

age: 20,

showName: function () {}

}

Object.values(obj) //['haha','20', f]

let brr = [1, 3, 4]

Object.values(brr)// [1, 3, 4]

排序:

let an_obj = { 100: 'a', 2: 'b', 7: 'c' }

console.log(Object.values(an_obj))// ['b', 'c', 'a']

字符串:

console.log(Object.values('haha'))// ['h', 'a', 'h', 'a']

Object.entries()

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

const obj = { foo: 'bar', baz: 42 }

console.log(Object.entries(obj))// [ ['foo', 'bar'], ['baz', 42] ]

const anObj = { 100: 'a', 2: 'b', 7: 'c' }

console.log(Object.entries(anObj))// [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

非对象会被强制转为对象:

console.log(Object.entries('foo'))// [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]

更优雅的遍历对象键值:

const obj = { a: 5, b: 7, c: 9 }

for (const [key, value] of Object.entries(obj)) {

console.log(`${key} ${value}`)// "a 5", "b 7", "c 9"

}

// 或者

Object.entries(obj).forEach(([key, value]) =>{

console.log(`${key} ${value}`)// "a 5", "b 7", "c 9"

})

Object.fromEntries()

Object.fromEntries() 把键值对列表转换为一个对象。改方法为ES10方法, Chrome不支持

const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

const obj = Object.fromEntries(arr)

console.log(obj)// { 0: "a", 1: "b", 2: "c" }