将字符串数组转换为字符串中的数字数组

时间:2014-07-17 18:40:07

标签: javascript

我有一个像这样的字符串数组:

[ '[{"asnumber":0}',
  '{"asnumber":1}',
  '{"asnumber":2}',
  '{"asnumber":3}',
  '{"asnumber":4}',
  '{"asnumber":5}',
  '{"asnumber":6}',
  '{"asnumber":7}',
  '{"asnumber":8}',
  '{"asnumber":9}',
  '{"asnumber":10}',
  '{"asnumber":11}',
  '{"asnumber":12}',
  '{"asnumber":13}',
  '{"asnumber":14}',
  '{"asnumber":15}',
  '{"asnumber":16}',
  '{"asnumber":17}',

等。如何在每个中创建数字数组?

3 个答案:

答案 0 :(得分:1)

只需使用RegexNumber即可获得您期望的结果:

var arr = [ '[{"asnumber":0}',
  '{"asnumber":2}',
  '{"asnumber":4}',
  '{"asnumber":6}',
  '{"asnumber":8}',
  '{"asnumber":10}'];

var newArr = [];

for(var i = 0; i < arr.length; i++)
{
    newArr.push(Number(arr[i].replace(/\D/g,'')));
}

console.log(newArr);

正如@cookiemonster所指出的那样,将for...in语句放在一边并使用旧的for是好的。你可以看到它正常工作here

答案 1 :(得分:0)

试试这个

var stringArray = [
        '{"asnumber":1}',
        '{"asnumber":2}',
        '{"asnumber":3}',
        '{"asnumber":4}',
        '{"asnumber":5}',
        '{"asnumber":6}',
        '{"asnumber":7}',
    ];

var result = stringArray.map(function(x){
    var obj = JSON.parse(x);
    return obj ? obj.asnumber : null;
});

console.log(result);
// [1, 2, 3, 4, 5, 6, 7] 

答案 2 :(得分:0)

你可以这样做:

var oldArray = ['{"asnumber":0}',
  '{"asnumber":1}',
  '{"asnumber":2}',
  '{"asnumber":3}',
  '{"asnumber":4}',
  '{"asnumber":5}',
  '{"asnumber":6}',
  '{"asnumber":7}',
  '{"asnumber":8}',
  '{"asnumber":9}',
  '{"asnumber":10}',
  '{"asnumber":11}',
  '{"asnumber":12}',
  '{"asnumber":13}',
  '{"asnumber":14}',
  '{"asnumber":15}',
  '{"asnumber":16}',
  '{"asnumber":17}'],
  newArray = [];
oldArray.forEach(function (element) { newArray.push(JSON.parse(element).asnumber); });