一个矩阵移位问题...有点难... 并且希望算法可以解决 var x = 10 alert(Math.pow(x, 2))x 不定... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 矩陈可以用一个二维数组来表示,每一行一个数组先将原矩陈转置,然后每一行再反向这个用javascript实现,不知道符不符合楼主要求://转置function Translate(o){ for (var i = 0; i < o.length; i++) { for (var j = 0; j < o[0].length; j++) { if (i < j) { var temp = o[i][j]; o[i][j] = o[j][i]; o[j][i] = temp; } } }}//倒置function Back(o){ for (var i = 0; i < arr.length; i++) { o[i] = o[i].reverse(); }}//打印function Print(o){ for (var i = 0; i < o.length; i++) { for (var j = 0; j < o[0].length; j++) { document.write(o[i][j] + " "); } document.write("<br />"); }}//测试var arr = new Array(["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]);Print(arr); //打印原矩Translate(arr); //转置Print(arr);Back(arr); //行反向Print(arr); 呵呵, 俺就是想用JS写, C/C++写这个没意思..谢谢楼上的, 等一下俺试试你的方法... 谢谢 JGood(他山之石,可以攻玉), 你的方法对俺的需求完全有用...明天结... 加到100分...还有些更复杂的排序...俺慢慢弄了...<script type="text/javascript">/*<![CDATA[*/ var Ar = fMakeArray(5, 1); document.write("<pre>"); fPrintAr(Ar, "原数组"); var Ar1 = Ar.slice(); fPrintAr(Ar1, "拷贝数组 Ar1"); Translate(Ar1); Back(Ar1); fPrintAr(Ar1, "Ar1->Right"); var Ar2 = fMakeArray(4, 1); fPrintAr(Ar2, "Ar2"); Translate(Ar2); Back(Ar2); fPrintAr(Ar2, "Ar2->Right"); document.write("</pre>"); function Translate(o) { for (var i = 0; i < o.length; i++ ) { for (var j = 0; j < o[0].length; j++ ) { if (i < j) { var temp = o[i][j]; o[i][j] = o[j][i]; o[j][i] = temp; } } } } //倒置 function Back(o) { for (var i = 0; i < o.length; i++ ) { o[i] = o[i].reverse(); } } function fRorationRight(Ar) { } function fPrintAr(Ar, sHeader) { if(sHeader) { document.write(sHeader.bold(), "\n"); } var Len = Ar.length; for(var i=0; i<Len; i++) { document.write(Ar[i], "\n"); } document.write("\n"); } function fMakeArray(iSquare, iStart, sSpace, iPadSpaceLen) { // shawl.qiu code, return array; Func: fRight, fStringSpace if(!iStart) iStart = 0; if(!sSpace) sSpace = " "; if(!iPadSpaceLen) iPadSpaceLen = 0; var iTotal = iSquare*iSquare; var iSpaceLen = (iTotal+"").length+iPadSpaceLen; var sSpace = fStringSpace(sSpace, iSpaceLen) //ert(iTotal) //ert(iSquare) //alert(iSpaceLen) var Ar = []; var Count = iStart; for(var i=0; i<iSquare; i++) { var SubAr = []; for(var I=0; I<iSquare; I++) { SubAr.push(fRight(sSpace+(I+iSquare*i+iStart), iSpaceLen)) } Ar.push(SubAr) continue; } return Ar; } // end function fMakeArray(iSquare, iStart, sSpace, iPadSpaceLen) function fRight(sStr, iRight) { // shawl.qiu code, return string if(!sStr) { if(typeof(sStr)=="number") sStr = "0" else sStr = ""; } if(typeof(sStr)=="number") sStr+=""; if(!iRight) return sStr; return sStr.slice(sStr.length-iRight); } // end function fRight(sStr, iRight) function fStringSpace(sStr, iTime) { // shawl.qiu code, return string var nLen=arguments.length; if(nLen===0) { sStr=' ' iTime=2; } if(nLen==1) { sStr+=' '; iTime=2; } return new Array(iTime+1).join(sStr); } // end function fStringSpace /*]]*/</script> JQUERY TABLE 隔行换色的问题 (在线痴等) 跪求 JS代码 控制按钮只能点击一次 kindeditor 问题,急急急 奇怪的变量丢失 javascript的小问题 关于jquery,菜鸟求问,如何拓展第三方插件的行为? ie9 body onload 不执行 求高人指点 送100 用过【梅花雪网页脚本控件集】MzTreeView 1.0的请进,急啊!!!!!!!!!!!!!!!!!!! js里两个元素怎么排在同一行 如何遍历被选中的checkbox的值以及所在行其他列中input的值 关于动态建元素的问题 初学js,问个很急的问题
function Translate(o)
{
for (var i = 0; i < o.length; i++)
{
for (var j = 0; j < o[0].length; j++)
{
if (i < j)
{
var temp = o[i][j];
o[i][j] = o[j][i];
o[j][i] = temp;
}
}
}
}
//倒置
function Back(o)
{
for (var i = 0; i < arr.length; i++)
{
o[i] = o[i].reverse();
}
}
//打印
function Print(o)
{
for (var i = 0; i < o.length; i++)
{
for (var j = 0; j < o[0].length; j++)
{
document.write(o[i][j] + " ");
}
document.write("<br />");
}
}//测试
var arr = new Array(["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]);Print(arr); //打印原矩Translate(arr); //转置
Print(arr);Back(arr); //行反向
Print(arr);
谢谢楼上的, 等一下俺试试你的方法...
明天结... 加到100分...还有些更复杂的排序...俺慢慢弄了...
<script type="text/javascript">
/*<![CDATA[*/
var Ar = fMakeArray(5, 1);
document.write("<pre>");
fPrintAr(Ar, "原数组");
var Ar1 = Ar.slice();
fPrintAr(Ar1, "拷贝数组 Ar1");
Translate(Ar1);
Back(Ar1);
fPrintAr(Ar1, "Ar1->Right");
var Ar2 = fMakeArray(4, 1);
fPrintAr(Ar2, "Ar2");
Translate(Ar2);
Back(Ar2);
fPrintAr(Ar2, "Ar2->Right");
document.write("</pre>");
function Translate(o)
{
for (var i = 0; i < o.length; i++ )
{
for (var j = 0; j < o[0].length; j++ )
{
if (i < j)
{
var temp = o[i][j];
o[i][j] = o[j][i];
o[j][i] = temp;
}
}
}
}
//倒置
function Back(o)
{
for (var i = 0; i < o.length; i++ )
{
o[i] = o[i].reverse();
}
}
function fRorationRight(Ar)
{
}
function fPrintAr(Ar, sHeader)
{
if(sHeader)
{
document.write(sHeader.bold(), "\n");
}
var Len = Ar.length;
for(var i=0; i<Len; i++)
{
document.write(Ar[i], "\n");
}
document.write("\n");
}
function fMakeArray(iSquare, iStart, sSpace, iPadSpaceLen)
{ // shawl.qiu code, return array; Func: fRight, fStringSpace
if(!iStart) iStart = 0;
if(!sSpace) sSpace = " ";
if(!iPadSpaceLen) iPadSpaceLen = 0;
var iTotal = iSquare*iSquare;
var iSpaceLen = (iTotal+"").length+iPadSpaceLen;
var sSpace = fStringSpace(sSpace, iSpaceLen)
//ert(iTotal)
//ert(iSquare)
//alert(iSpaceLen)
var Ar = [];
var Count = iStart;
for(var i=0; i<iSquare; i++)
{
var SubAr = [];
for(var I=0; I<iSquare; I++)
{
SubAr.push(fRight(sSpace+(I+iSquare*i+iStart), iSpaceLen))
}
Ar.push(SubAr)
continue;
}
return Ar;
} // end function fMakeArray(iSquare, iStart, sSpace, iPadSpaceLen)
function fRight(sStr, iRight)
{ // shawl.qiu code, return string
if(!sStr)
{
if(typeof(sStr)=="number") sStr = "0"
else sStr = "";
}
if(typeof(sStr)=="number") sStr+="";
if(!iRight) return sStr;
return sStr.slice(sStr.length-iRight);
} // end function fRight(sStr, iRight) function fStringSpace(sStr, iTime)
{ // shawl.qiu code, return string
var nLen=arguments.length;
if(nLen===0)
{
sStr=' '
iTime=2;
}
if(nLen==1)
{
sStr+=' ';
iTime=2;
}
return new Array(iTime+1).join(sStr);
} // end function fStringSpace
/*]]*/
</script>