提供递归的思路:
var str = 'a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z', arr=str.split(','), strA=[]
var PermutN=function(n,m){//生成排列数索引 (从n个数中选择m个)
var t=[],ms=[],mstr
if(n==1){
if(m==0){t=[]}
if(m==1){t=[0]}
return t
}
if(m==0){
return []
}
if(m==1){
return 自然序列数组
}
for(var i=0i<ni++){
var s=PermutN(n-1,m-1)
t.push(对s进行拼接)
}
return t
}
var P=PermutN(26,4)
for(var i=0i<P.lengthi++){
var Pi=P[i],ps=''
for(var j=0j<4j++){
ps+=arr[j]
}
strA.push(ps)
}
return strA
JavaScript中,由于数组长度是可变的,因此可以通过直接定义新的成员而将其添加到数组中:var o = [2,3,5]
o[3] = 7
console.log(o)//[2,3,5,7]
除了这种方法,还可以通过使用push()语句来达到相同的目的:
o.push(11)
console.log(o)//[2,3,5,7,11]
o.push(13,17)
console.log(o)//[2,3,5,7,11,13,17]
如果需要在数组开头添加新的成员,可以使用unshift()语句:
o.unshift(2014)
console.log(o)//[2014,2,3,5,7,11,13,17]
o.unshift(2013, 2012)
console.log(o)//[2013,2012,2014, 2,3,5,7,11,13,17]
与push()对应,如果需要从数组末尾删除一个成员,可以使用pop()语句,pop()语句将返回这个被删除的成员,而数组长度将减少1:
var p = o.pop()
console.log(p)//17
console.log(o.length)//9
与unshift()对应,如果需要从数组开头删除一个成员,可以使用shift()语句,shift()语句将返回这个被删除的成员,而数组长度将减少1:
var s = o.shift()
console.log(s)//2013
console.log(o.length)//8
除了shift()语句和pop()语句,还可以通过delete操作符来删除数组中的成员。与shift()和pop()不同的是,delete操作后数组的length属性将保持不变,也即数组将变得不连续。
JavaScript中还可以通过设定数组的length属性来对数组进行修改:当length值小于数组成员数时,JavaScript将对数组进行截取;当length值大于数组成员数时,JavaScript会将数组变得不连续。如果length值只读,那么在数组中直接定义新成员的操作将会失败:
console.log(o)//[2012,2014, 2,3,5,7,11,13]
o.length = 2
console.log(o)//[2012,2014]
o.length = 4
console.log(o)//[2012,2014,undefined,undefined]
var a = [1,2,3]
Object.defineProperty(a, "length", {writable:false})
a[3] = 4
console.log(a)//[1,2,3]
var arr=[1,2]var fun=function(){
arr=[1,3]
}
fun()
console.log(arr)