2022/2/13

一、JavaScript

1.splice用法

**注意:**splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。

适用范围:所有浏览器

例子 1

创建一个新数组,并在数组index2位置添加一个元素:

var arr = ['George', 'John', 'Thomas', 'James', 'Adrew', 'Martin']
arr.splice(2,0,'sz')
console.log(arr)//'George', 'John', 'sz','Thomas', 'James', 'Adrew', 'Martin'

例子 2

删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:

var arr = ['George', 'John', 'Thomas', 'James', 'Adrew', 'Martin']
arr.splice(2,1'sz')
console.log(arr)//'George', 'John', 'sz', 'James', 'Adrew', 'Martin'

例子 3

删除从 index 2 (“Thomas”) 开始的三个元素,并添加一个新元素 (“sz”) 来替代被删除的元素

var arr = ['George', 'John', 'Thomas', 'James', 'Adrew', 'Martin']
arr.splice(2,3,'sz')
console.log(arr)//'George', 'John','sz' ,'Martin'

例子 4

删除指定的元素

var arr = ['George', 'John', 'Thomas', 'James', 'Adrew', 'Martin']
arr.splice(0, 1) //从数组第一个元素开始,删除一个元素
arr.splice(0,2)//从数组第一个元素开始,删除两个元素
console.log(arr)

2、换行两种方法

1、自动换行符’\n’

console.log("1\n2")
console.log(1+'\n'+3)

image-20220213145458742

2、使用HTML标签

使用doucument.write()+

 document.write('第一行<br />第二行<br />')
    document.write(1 + '<br />' + 3)

image-20220213150112333

3、数组对象方法

image-20220213152639820

二、CSS

三、算法题

leetcode:283.移动零

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]

说明:

必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。

方法一:

一开始for循环里使用的条件是 i<nums.length,这样会导致多循环后面好多个无用的0,导致超时,引入动态的end即可解决此问题。

var moveZeroes = function (nums) {
  let end = nums.length
  for (var i = 0; i < end; ) {
    if (nums[i] != 0) {
      i++
    } else if (nums[i] == 0) {
      nums.splice(i, 1)
      nums.push(0)
      i--
      end--
    }
  }
  console.log(nums)
}
moveZeroes([1, 0, 1, 2, 3, 4, 5])

image-20220213154340710

或者:

var moveZeroes = function(nums) {
    let end = nums.length
    for(let i = 0; i<end; i++){
        if(nums[i]===0){
            nums.splice(i,1)
            nums.push(0)
            i--
            end--
        }
    }
    return nums
};

方法二:

两个指针,一个start指向0,一个end指向length-1;

循环,start小于end的时候,如果start这个index的元素是 0 ,则将这个元素删掉,尾巴上push进一个 0 ,end左移(end–);

如果start这个index的元素不是 0,start++,继续判断……

var moveZeroes = function (nums) {
  const max = nums.length

  let start = 0
  let end = max - 1

  while (start < end) {
    const item = nums[start]
    if (item === 0) {
      nums.splice(start, 1)
      nums.push(0)
      end--
      continue
    }
    start++
  }

  console.log(nums)
}
moveZeroes([1, 0, 1, 2, 3, 4, 5])

四、English Post

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值