具有以下数字数组
var request = require('request');
//set url
var url = 'http://localhost:8088/example';
//set header
var headers = {
'Authorization': 'Your authorization'
};
//set form data
var form = {first_name: first_name, last_name: last_name};
//set request parameter
request.post({headers: headers, url: url, form: form, method: 'POST'}, function (e, r, body) {
var bodyValues = JSON.parse(body);
console.log(updatedValues.first_name);
console.log("====================================");
console.log('error:', e); // Print the error if one occurred
console.log('statusCode:', r && r.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
console.log("====================================");
res.send(bodyValues);
});
我尝试打印它们并保留零,我认为将数字转换为字符串可以解决问题,但事实并非如此,这是我尝试过的一些选择
[0001, 0002, 0003]
如果我尝试任何一种,我都会得到相同的结果
我期望的结果是
[0001, 0002, 0003].forEach(number => console.log(''+number)) // '1', '2', '3'
预先感谢
答案 0 :(得分:0)
希望您正在寻找这个。将Number
的数组转换为带有前导零的String
的数组。
var size = 5;
var arr = [1,2,3,4,50];
var newArr = arr.reduce((result,v) => {
newStr = String(v);
while(newStr.length < (size || 2))
newStr = "0" + newStr;
result.push(newStr);
return result;
},[])
console.log(newArr)
答案 1 :(得分:0)
如果数组中的数字具有固定长度,则可以使用以下内容
function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
pad(1,4)
返回0001
根据您的情况:
[0001, 0002, 0003].forEach(number => console.log(pad(number,4)) //0001,0002,0003
请记住,只有整数具有固定长度时,此答案才有用。
答案 2 :(得分:0)
我认为像这样的格式化程序已经在某处使用了,但是在ES6中,您可以这样做:
var format = len => num =>
((new Array(len)).fill("0").join("")+num).slice(len*-1);
console.log(
[1,2,3,4,5].map(format(4))
);
您的主要问题是数字以八进制而不是十进制形式提供,因此您可以尝试以下操作:
var format = len => num =>
((new Array(len)).fill("0").join("")+Number(num).toString(8))
.slice(len*-1);
console.log(
[0001,0002,0003,0004,0012].map(format(8))
);