Javascript 循环数组值并生成不同的列名输出
我需要你的帮助 我想知道是否可以修改for循环,该循环在数组值上循环并基于数组值输出列名,但也只能(1)出现单个项,从而生成不同的列名。下面是迄今为止javascript代码输出的图片: 这是所需的输出。正如你所见,它在视觉上更吸引眼球,而不需要重复。因为我稍后会在列名下清点数字 下面是有问题的Javascript代码:Javascript 循环数组值并生成不同的列名输出,javascript,arrays,loops,Javascript,Arrays,Loops,我需要你的帮助 我想知道是否可以修改for循环,该循环在数组值上循环并基于数组值输出列名,但也只能(1)出现单个项,从而生成不同的列名。下面是迄今为止javascript代码输出的图片: 这是所需的输出。正如你所见,它在视觉上更吸引眼球,而不需要重复。因为我稍后会在列名下清点数字 下面是有问题的Javascript代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type"
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
</style>
<script type="text/javascript">
function search_array(arr, str){
var searchExp = new RegExp(str,"gi");
return (searchExp.test(arr))?true:false;
}
function build_sheet() {
var Excel = new ActiveXObject("Excel.Application")
var Book = Excel.Workbooks.Add()
var Sheet = Book.ActiveSheet
var temp = "BNI to President","BNI to Director","BNI to Manager","BNA to President","BNA to Director","BNA to Manager"
var c = 2 /* Start position @ Column 2*/
for(var i = 0; i < temp.length; i++) {
if (search_array(temp[i], "BNI to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Info)"
}
if (search_array(temp[i], "BNA to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Approval)"
}
else {
Sheet.Cells(2,c).Value = temp[i]
}
++c
}
Excel.visible = true
Excel.quit()
Excel = null
}
</script>
</head>
<body>
</body>
</html>
函数搜索数组(arr、str){
var searchExp=新的RegExp(str,“gi”);
返回(searchExp.test(arr))?真:假;
}
函数构建表(){
var Excel=新的ActiveXObject(“Excel.Application”)
var Book=Excel.Workbooks.Add()
var Sheet=Book.ActiveSheet
var temp=“BNI致总裁”、“BNI致董事”、“BNI致经理”、“BNA致总裁”、“BNA致董事”、“BNA致经理”
变量c=2/*第2列的起始位置*/
对于(变量i=0;i
实现这一点的方法有很多,但一个简单的方法是简单地跟踪编写的内容,如果已经编写了,不要再编写:
function build_sheet() {
var Excel = new ActiveXObject("Excel.Application");
var Book = Excel.Workbooks.Add();
var Sheet = Book.ActiveSheet;
var temp = "BNI to President","BNI to Director","BNI to Manager","BNA to President","BNA to Director","BNA to Manager";
var c = 2; /* Start position @ Column 2*/
var written = ['info'=>false, 'approval'=>false];
for(var i = 0; i < temp.length; i++) {
if (!written['info'] && search_array(temp[i], "BNI to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Info)";
written['info'] = true;
++c;
}
if (!written['approval'] && search_array(temp[i], "BNA to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Approval)";
written['approval'] = true;
++c;
}
else {
Sheet.Cells(2,c).Value = temp[i];
++c;
}
}
Excel.visible = true;
Excel.quit();
Excel = null;
}
功能构建工作表(){
var Excel=新的ActiveXObject(“Excel.Application”);
var Book=Excel.Workbooks.Add();
var Sheet=Book.ActiveSheet;
var temp=“BNI致总裁”、“BNI致董事”、“BNI致经理”、“BNA致总裁”、“BNA致董事”、“BNA致经理”;
变量c=2;/*第2列的起始位置*/
var writed=['info'=>false,'approval'=>false];
对于(变量i=0;i
我不确定这是否100%有效,因为我没有excel,也不知道您如何在excel电子表格上使用JS,但我将首先解释我的思路
如果在for循环外部定义的单独数组中跟踪输入到电子表格中的任何值,则可以检查该数组以查看是否已插入temp[i]
。如果没有,那么运行剩下的代码,这看起来很好
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
</style>
<script type="text/javascript">
function search_array(arr, str){
var searchExp = new RegExp(str,"gi");
return (searchExp.test(arr))?true:false;
}
function build_sheet() {
var Excel = new ActiveXObject("Excel.Application")
var Book = Excel.Workbooks.Add()
var Sheet = Book.ActiveSheet
var temp = ["BNI to President","BNI to Director","BNI to Manager","BNA to President","BNA to Director","BNA to Manager"];
var c = 2 /* Start position @ Column 2*/
var arr = []
for( var i = 0; i < temp.length; i++) {
if (arr.indexOf(temp[i]) == -1) {
arr.push(temp[i]);
if (search_array(temp[i], "BNI to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Info)"
}
if (search_array(temp[i], "BNA to") == true) {
Sheet.Cells(2,c).Value = "Briefing Notes (Approval)"
}
else {
Sheet.Cells(2,c).Value = temp[i]
}
}
++c
}
Excel.visible = true
Excel.quit()
Excel = null
}
</script>
</head>
<body>
</body>
</html>
函数搜索数组(arr、str){
var searchExp=新的RegExp(str,“gi”);
返回(searchExp.test(arr))?真:假;
}
函数构建表(){
var Excel=新的ActiveXObject(“Excel.Application”)
var Book=Excel.Workbooks.Add()
var Sheet=Book.ActiveSheet
var temp=[“BNI对总裁”、“BNI对董事”、“BNI对经理”、“BNA对总裁”、“BNA对董事”、“BNA对经理”];
变量c=2/*第2列的起始位置*/
var arr=[]
对于(变量i=0;i++c
我相信是有条件的