2016-11-06 73 views
0

有了这个数组的数组:的Javascript遍历字符串和整数

const xx = [ 
    { 
    name: "Alex", 
    income: 324300, 
    total: 3030000 
    }, 
    { 
    name: "Snake", 
    income: 3433000, 
    total: 34323000 
    }, 
    { 
    name: "Wake", 
    income: 4, 
    total: 3 
    } 
]; 

我想通过它循环,并做一些事情如果值是一个int(收入和总)。我如何去做呢?

这是我到目前为止已经试过,我真的不知道该怎么取出来的对象值和测试,如果它是一个int

for (var key in xx) { 
     var arr = xx[key]; 
     for(var i = 0; i < arr.length; i++) { 
      var obj = arr[ i ]; 
     } 
    } 
     } 
+0

'xx.forEach((O)=> {如果(parseInt函数(o.income,10)==收入&& ...' – adeneo

回答

0

尝试:

const xx = [ 
 
    { 
 
    name: "Alex", 
 
    income: 324300, 
 
    total: 3030000 
 
    }, 
 
    { 
 
    name: "Snake", 
 
    income: 3433000, 
 
    total: 34323000 
 
    }, 
 
    { 
 
    name: "Wake", 
 
    income: 4, 
 
    total: 3 
 
    } 
 
]; 
 

 
xx.forEach(item => { 
 
    Object.keys(item).forEach(key => { 
 
    if (!isNaN(parseInt(item[key])) && isFinite(item[key])) { 
 
     // do something here 
 
     console.log('INT: ' + item[key]); 
 
    } 
 
    }); 
 
});

0

您需要与外部交换内部。并使用:

  • typeof xx[i][k] === "number" OR xx[i][k] === +xx[i][k]检查,如果值是 一个数字。
  • parseInt(xx[i][k]) === xx[i][k]检查值是否为整数 number。

参见例如:

const xx = [{ 
 
    name: "Alex", 
 
    income: 324300, 
 
    total: 3030000 
 
}, { 
 
    name: "Snake", 
 
    income: 34.33000, 
 
    total: 34323000 
 
}, { 
 
    name: "Wake", 
 
    income: 4, 
 
    total: 3 
 
}]; 
 
for (var i = 0; i < xx.length; i++) { 
 
    for (var k in xx[i]) { 
 
    //if(parseInt(xx[i][k]) === xx[i][k]) //integer 
 
    //if(typeof xx[i][k] == "number") //number 
 
    if (xx[i][k] === +xx[i][k]) { //number 
 
     console.log(k + ": " + xx[i][k]); 
 
    } 
 
    } 
 
}