data = [ RowDataPacket { test: '12312311' },
RowDataPacket { test: '12312312' },
RowDataPacket { test: '12312313' } ]
我想将这个对象中的数字放入Javascript数组中。
我已经使用.split(/(\d+)/);
进行了尝试,但是在Chrome浏览器中出现了此错误:
未捕获的TypeError:data.split不是函数。
如何提取数字?
答案 0 :(得分:4)
由于.split()
是 string 方法,因此您的尝试将无法进行-它用于将字符串分解为数组。您已经有一个数组。此处的JSON似乎无关紧要,因为您共享的不是JSON。
您可以使用Array.map()
来改变数组的每个成员。您想要获取每个成员的test
值并进行解析。
var data = [ { test: '12312311' }, { test: '12312312' }, { test: '12312313' } ];
var result = data.map(obj => parseInt(obj.test));
console.log(result);
答案 1 :(得分:3)
您可以结合使用map
方法和destructuring
返回一个新数组。 +
可以用作强制运算符,用于将字符串值更改为数字。
data.map(({test}) => +test);
let data = [ { test: '12312311' }, { test: '12312312' }, { test: '12312313' } ],
r = data.map(({test}) => +test);
console.log(r);
答案 2 :(得分:0)
这就像简单的forEach一样容易。但是首先您应该以某种方式忽略 RowDataPacket ,然后下面的代码应该起作用。
var numbers = [];
data.forEach(function( item ) {
numbers.push(parseInt(item.test));
});