将给定的数字转换成罗马数字
var bet= {
signal: [ 'I' , "II" , 'III' , 'IV' , 'V' , 'VI' , 'VII' , 'VIII' , 'IX' ] ,
decade: [ 'X' , 'XX' , 'XXX' , 'XL' , 'L' , 'LX' , 'LXX' , 'LXXX' , 'XC' ] ,
hundred: [ 'C' , 'CC' , 'CCC' , 'CD' , 'D' , 'DC' , 'DCC' , 'DCCC' , 'CM' ] ,
thousand: [ "M" , "MM" , "MMM" ]
} ;
var betIndex= [ "signal" , "decade" , "hundred" , "thousand" ] ;
function convert ( num) {
var numLength;
var flag1= [ ] ;
var flag2= [ ] ;
numLength= num. toString ( ) . length;
num= num. toString ( ) ;
for ( var i= 0 ; i< numLength; i++ ) {
flag1. push ( bet[ betIndex[ i] ] ) ;
}
flag1. reverse ( ) ;
for ( var j= 0 ; j< flag1. length; j++ ) {
flag2. push ( flag1[ j] [ Number ( num[ j] ) - 1 ] ) ;
}
return flag2. join ( "" ) ;
}
convert ( 3999 ) ;
比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。
function diff ( arr1, arr2) {
var newArr = [ ] ;
for ( var i= 0 ; i< arr1. length; i++ )
{
if ( arr2. indexOf ( arr1[ i] ) == - 1 ) {
newArr. push ( arr1[ i] ) ;
}
}
for ( var i= 0 ; i< arr2. length; i++ )
{
if ( arr1. indexOf ( arr2[ i] ) == - 1 ) {
newArr. push ( arr2[ i] ) ;
}
}
return newArr;
}
diff ( [ 1 , "calf" , 3 , "piglet" ] , [ 7 , "filly" ] ) ;
传入二进制字符串,翻译成英语句子并返回。二进制字符串是以空格分隔的。
function binaryAgent ( str) {
var arr= [ ] , decade= 0x00 , num= 0x00 , temp= [ ] ;
arr= str. split ( " " ) ;
for ( var i= 0 ; i< arr. length; i++ ) {
for ( var j= 0 ; j< 8 ; j++ ) {
if ( j< 4 && arr[ i] [ j] == 1 ) {
switch ( j) {
case 0 :
decade= decade+ 0x80 ;
break ;
case 1 :
decade= decade+ 0x40 ;
break ;
case 2 :
decade= decade+ 0x20 ;
break ;
case 3 :
decade= decade+ 0x10 ;
break ;
}
}
if ( j> 3 && arr[ i] [ j] == 1 ) {
switch ( j) {
case 4 :
num= num+ 0x08 ;
break ;
case 5 :
num= num+ 0x04 ;
break ;
case 6 :
num= num+ 0x02 ;
break ;
case 7 :
num= num+ 0x01 ;
break ;
}
}
}
temp. push ( String. fromCharCode ( decade+ num) ) ;
decade= 0x00 ; num= 0x00 ;
}
return temp. join ( "" ) ;
}
binaryAgent ( "01001001 00100000 01101100 01101111 01110110 01100101 00100000 01000110 01110010 01100101 01100101 01000011 01101111 01100100 01100101 01000011 01100001 01101101 01110000 00100001" ) ;
binaryAgent ( "01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111" ) ;
如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真。函数返回ture。反之,返回false。
function every ( collection, pre) {
var result;
result= collection. every ( element=> {
return ( Object. keys ( element) . indexOf ( pre) != - 1 ) && ( element[ pre] ) ;
}
) ;
return result;
}
every ( [ { "single" : "yes" } ] , "single" ) ;
every ( [ { "user" : "Tinky-Winky" , "sex" : "male" , "age" : 0 } , { "user" : "Dipsy" , "sex" : "male" , "age" : 3 } , { "user" : "Laa-Laa" , "sex" : "female" , "age" : 5 } , { "user" : "Po" , "sex" : "female" , "age" : 4 } ] , "age" ) ;
找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。
function SmallestCommonMultiple ( str) {
for ( var i= str[ 0 ] ; i<= str[ 0 ] * str[ 1 ] ; i+= str[ 0 ] ) {
if ( i% str[ 1 ] == 0 ) {
break ;
}
}
return i;
}
function smallestCommons ( arr) {
var temp= [ ] , transArr= [ ] ;
arr. sort ( ( a, b) => a- b) ;
for ( var i= arr[ 0 ] ; i<= arr[ 1 ] ; i++ ) {
transArr. push ( i) ;
}
while ( transArr. length!= 2 ) {
arr= [ ] ;
arr. push ( transArr. shift ( ) ) ;
arr. push ( transArr. shift ( ) ) ;
transArr. push ( SmallestCommonMultiple ( transArr) ) ;
arr. sort ( ( a, b) => a- b) ;
}
return transArr[ 0 ] ;
}
smallestCommons ( [ 1 , 24 ] ) ;