js 数组array 对象 小数点后2位 toFixed() 替换 二维数组 替换键值_百度...
发布网友
发布时间:2022-05-15 12:49
我来回答
共2个回答
热心网友
时间:2022-04-23 18:13
<script>
obj = {
c: {
aa: [1, 2, 3, 4],
bb: [1.1, 2.2, 3.3],
cc: [1.11, 2.22, 3.33]
}
};
let {c: {aa}, c: {bb}, c: {cc}} = obj;
let foo = fn => {
if (Array.isArray(fn)) {
for (let i = 0; i < fn.length; i++) {
foo(fn[i]);
}
}else {
let x = fn.toFixed(2);
console.log(x);
}
};
let a = aa.concat(bb, cc);
foo(a);
</script>
代码如上,首先用解构赋值把对象里面的数字全部取出来,之后用for方法把获得的所有对象的值依次取出来,之后保留两位小数,输出的x就是处理后的
热心网友
时间:2022-04-23 19:31
//转换函数
function myfixed(obj) {
var type = Object.prototype.toString.call(obj);
if (type === '[object Number]')
return obj.toFixed(2);
if (type === '[object String]') {
var value = +obj;
return isNaN(value) ? obj : value.toFixed(2);
}
if (type === '[object Array]')
return obj.map(function (value) {
return myfixed(value);
});
if (type === '[object Object]')
for (var key in obj) {
obj[key] = myfixed(obj[key]);
}
return obj;
}
//测试(楼主的例子不够典型,为了加强测试,构造了更复杂的结构)
var obj = {
c: {
aa: [1, 2, 3, 4],
bb: [1.1, 2.2, 3.3],
cc: [1.11, 2.222, 3.33]
},
x: [1, 1.5, 1.55, 1.564, 1.565, '2.566', true, null, {x: [1, 2, 3]},[1, 2, 3]]
};
var result = myFixed(obj);
console.log(result);