js小数变成整数

有这样一个二维数组:

   let arr = [
        [11294.1176470588, 2, 0],
        [13058.8235294118, 3, 500,"hello"],
        [13411.7647058824, 0, 1200.5698],
        [13764.7058823529, 1, 0,"hello2"],
        [14117.6470588235, 2, 1676.47058823529],
    ];

用js把小数变成整数,应该怎么写代码?大佬指导一下

阅读 2.9k
4 个回答

遍历一遍,挨个用parseInt

for(let i = 0; i < arr.length; i++) {
  let item = arr[i];
  for(let j = 0; j < item.length; j++) {
      if (typeof item[j] === 'number' && !Number.isInteger(item[j])) {
        arr[i][j] = Math.round(item[j])
      }
  }
}

常规做法是遍历数组,把数组中的小数转换成整数,这里我提供另外一种思路:

const str = JSON.stringify(arr);
arr = JSON.parse(str.replace(/([\[,]\d+)\.\d+([\],])/g, "$1$2"));
console.dir(arr);
let result = arr.map(v => {
   return v.map(v => typeof v ==='string' ? v : ~~v);
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题