js随笔

  • 二维数组行列转换
function transformArray(arr){
	const array = [];
	arr.forEach((row, r) => {
		row.forEach((col, c) => {
			array[c] ||= [];
			array[c][r] = col;
		});
	});
	return array;
}
const arr = [[1,2], [3,4], [5,6], [7, 8]];
console.log(arr); \\ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ] ]
console.log(transformArray(arr)); \\ [ [ 1, 3, 5, 7 ], [ 2, 4, 6, 8 ] ]
console.log(transformArray(transformArray(arr))); \\ [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7, 8 ] ]
  • 格式化日期
new Date().toLocaleString('default', {hour12: false}).replace(/\b\d\b/g, '0$&')
  • js代码 -> js字节码
const vm = require('vm');
const fs = require('fs');
const js_code = fs.readFileSync(__dirname+"/test.js").toString();
const script = new vm.Script(js_code, {produceCachedData: true});
const byte_code = script.cachedData;
fs.writeFileSync(__dirname+"/test.jsb",byte_code);
  • js字节码 -> nodejs ->运行
const vm = require('vm');
const fs = require('fs');
const byte_code = fs.readFileSync(__dirname+"/test.jsb");
const len = byte_code.slice(8, 12).reduce((sum, number, power) => sum += number * Math.pow(256, power));
const dummyCode = ''.repeat(len);
script = new vm.Script(dummyCode, {cachedData: byte_code});
script.runInThisContext();
posted @ 2021-12-09 11:28  风的线条昵称已被使用  阅读(10)  评论(0编辑  收藏  举报