// // 三角形打印
function log(n){
for(var i = 1; i <= n; i ++){
for(var j = 0; j < n - i; j ++){//循环使前边空格产生
document.write(" ");
}
for(var k = 0; k < i; k ++){//使星星产生
document.write(" * ");
}
document.write("<br>");
}
}
log(5);
// 倒三角打印
function log(n) {
for(var i = 1; i <= n; i ++) {
for(var k = 0; k < i; k ++) {
document.write(" ");
}
for(var j = n; j >= i; j --) {
document.write(" * ");
}
document.write("<br>");
}
}
log(5);
2.数组去重
// 方法一
function remote_Repeat1(arr) {
let newArr = [];
for(let i = 0; i < arr.length; i++) {
if(!newArr.includes(arr[i])) {
newArr.push(arr[i]);
}
}
return newArr;
}
var test1 = [1, 2, 3, 4, 4, 4,5,5,5,5];
console.log(remote_Repeat1(test));
// 方法二
function remote_Repeat2(arr) {
for(let i = 0; i < arr.length; i ++) {
let item = arr[i];
for(let j = i + 1; j < arr.length; j ++) {
let compare = arr[j];
if(item === compare) {
arr.splice(j, 1);
j --;
}
}
}
return arr;
}
var test2 = [1, 2, 3, 4, 4, 4,5,5,5,5];
console.log(remote_Repeat2(test));
3.不借助变量实现转
function swap(a, b) {//a = b - (b - a)
b = b - a;//6-2
a = a + b;//2+4
b = a - b;//6-4
return [a, b];
}
let c = swap(2, 6);
console.log(c);
4.随机生成指定长度的字符串
function randomString(str, n) {
let l = str.length;
let temp = '';
for(var i = 0; i < n; i ++) {
temp += str.charAt(Math.floor(Math.random() * l));
}
return temp;
}
let test = randomString('gfuyeiwaufewujflehiuw4a98r7878t79', 9);
console.log(test);
5.找出数组最大差的值
function getMaxProfit(arr) {
var min = arr[0]; //最小值
var max = 0; //最大值
for (var i = 0; i < arr.length; i++) {
var current = arr[i];
minD = Math.min(min, current);
var d_value = current - minD;
maxD = Math.max(max, d_value);
}
return maxD;
}
var a = getMaxProfit([1, 2, 4, 6, 78, 987]);
console.log(a);
6.字符串个数
var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
if(!json[str.charAt(i)]) {
json[str.charAt(i)] = 1;
}else{
json[str.charAt(i)]++;
}
};
console.log(json);
var iMax = 0;
var iIndex = '';
for(var i in json){
if(json[i]>iMax){
iMax = json[i];
iIndex = i;
}
}
console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次');
7.最大值
function sort_Max (str1, str2) {
return str1 + str2 > str2 + str1;
}
function solve(nums) {
let arr = [];
for(var i = 0; i < nums.length; i ++) {
arr += nums[i].toString();
}
arr.sort_Max();
if(arr[0] == "0") return "0";
let res = "";
for(var i = 0; i < arr.length; i ++) {
res += arr[i];
}
return res;
}
let a = solve([1, 23, 43, 545, 7]);
console.log(a);
8.去除两端空格
function test(str){
let first = 0;
let last = 0;
let strlength = str.length;
for(let i=0; i<strlength; i++){
if(str[i] !== ' ') {
first = i;
break;
};
}
for(let j = strlength - 1; j >= 0; j --){
if(str[j] !== ' ') {
last = j;
break;
}
}
console.log(first, last);
return str.slice(first, last+1);
}
let testStr = ' jjkfadf dfj ';
console.log(test(testStr));
9.反转单向列表
var reverseList = function(head) {
// 判断下变量边界问题
if (!head || !head.next) return head;
// 初始设置为空,因为第一个节点反转后就是尾部,尾部节点指向 null
let pre = null;
let current = head;
let next;
// 判断当前节点是否为空
// 不为空就先获取当前节点的下一节点
// 然后把当前节点的 next 设为上一个节点
// 然后把 current 设为下一个节点,pre 设为当前节点
while(current) {
next = current.next;
current.next = pre;
pre = current;
current = next;
}
return pre;
};
10.洗牌算法
function shuffleSelf(array, size) {
var index = -1,
length = array.length,
lastIndex = length - 1;
size = size === undefined ? length : size;
while (++index < size) {
// var rand = baseRandom(index, lastIndex),
var rand = index + Math.floor( Math.random() * (lastIndex - index + 1))
value = array[rand];
array[rand] = array[index];
array[index] = value;
}
array.length = size;
return array;
}
console.log(shuffleSelf([1,12,3,4,5,6,7,8]));