或者换个说法
如何让数组A中相同值的项进行合并
如 A['a','b','c','a']
B['1','2','3','4']
C['d','c','v','x']
合并后
D['a'|'5'|'d+x']['b'|'2'|'c']['c'|'3'|'v']
如何让数组A中相同值的项进行合并
如 A['a','b','c','a']
B['1','2','3','4']
C['d','c','v','x']
合并后
D['a'|'5'|'d+x']['b'|'2'|'c']['c'|'3'|'v']
现有几个一维数组,通过arry(i)来连接成每个name的信息
这些name会有重复,所以需要组合一下把相同name的信息组合在一起
比如说我用shop这个name购物一样,几个一维数组分别定义我买的物品名,消费多少...等等
现在要实现只要是我买的物品都放在一起,价格相加总和放进数组如 A['a','b','c','a']
B['1','2','3','4']
C['d','c','v','x']
合并后
D['a'|'5'|'d+x']['b'|'2'|'c']['c'|'3'|'v']
D[A[]][B[]][C[]]
要如何关联
price[] .........B[]
item[] .........C[]
fixArry[] .........D[]
['a','b','c','a'],
['1','2','3','4'],
['d','c','v','x']
];
var h = new Array(src[0].length);
var ary = [];
for( var i = 0; i < src[0].length; i++ )
{
if( h[i] )
{
continue;
}
var Columns = GetColumns( src[0], i );
var col1 = 0;
var col2 = [];
for( var j = 0; j < Columns.length; j++ )
{
col1 += parseFloat(src[1][Columns[j]]);
col2.push( src[2][Columns[j]] );
}
ary.push(src[0][i]);
ary.push(col1.toString());
ary.push(col2.join('+'));
}
alert(ary);function GetColumns( ary, index )
{
var r = [];
var v = ary[index];
r.push(index);
for( var i = index+1; i < ary.length; i++ )
{
if( h[i] )
{
continue;
}
if( ary[i] == v )
{
h[i] = true;
r.push(i);
}
}
return r;
}拷下即可运行观看效果
脚本里这个push我就不会用
a = [ "a", "b"]
a.push("c");
//a = ["a","b","c"]
这样也可以么?
A与B,C都是相关联的信息啊
用三维数组是不是要好些呢?
B['1','2','3','4'],
C['d','c','v','x']
因为我能读到就是是类似这样的几个一维数组
这几个数组堆是通过顺序进行信息连系
我可能要用到分别按照不同的数组的信息进行检索,所以希望可以做到像这样Arry[][][]的数组
这样的是不是会容易些呢?
怎么传给你!随时都可能更新啊
{
var h = new Array(a.length);
var ary = [];
for( var i = 0; i < a.length; i++ )
{
if( h[i] )
{
continue;
}
var Columns = GetColumns( a, i, h );
var col1 = 0;
var col2 = [];
for( var j = 0; j < Columns.length; j++ )
{
col1 += parseFloat(b[Columns[j]]);
col2.push( c[Columns[j]] );
}
var t = [];
t.push(a[i]);
t.push(col1.toString());
t.push(col2.join('+'));
ary.push( t );
}
return ary;
}
alert( CpAry( ['a','b','c','a'], ['1','2','3','4'], ['d','c','v','x']) );
function GetColumns( ary, index, h )
{
var r = [];
var v = ary[index];
r.push(index);
for( var i = index+1; i < ary.length; i++ )
{
if( h[i] )
{
continue;
}
if( ary[i] == v )
{
h[i] = true;
r.push(i);
}
}
return r;
}===============
以上结果为
[
["a","5","d+x"],
["b","2","c"],
["c","3","v"]
]
CpAry返回的是一个“二维”数组。
var ary = CpAry(/*加正确的参数*/);ary[0][0],
ary[0][1],
ary[0][2],
ary[1][0],
ary[1][1],
ary[1][2],
这种方式可用。
A=['a','b','c']
B=['1','2','3']
C=[]
C[1]=A
C[2]=B
alert(C[1][1])
alert(C[2][2])
</script>
谢谢你的回贴
可是你写的过于简单了达不到我的要求呵呵
var ary = CpAry(/*加正确的参数*/);
CpAry(这里的参数是动态的,我要如何加载呢?)
数组是加载而来的function CreateDomScript(url,objId)
不是说要如何加载
是加载过来的数组我要如何让它们显示在CpAry()里面
是CpAry( A, B, C );
还是CpAry( [ A, B, C, ... ] );
??????