美文网首页
字符串-数组-对象

字符串-数组-对象

作者: 缘之空_bb11 | 来源:发表于2024-06-26 10:15 被阅读0次
字符串
1.初始化
var str = '' //单引号
var str = "" //双引号
var str = '' ; //返斜冒号,全局匹配
var str= new Str( ); //自变量创建字符串,一般不建议试用
2. 处理
  1. 去空格
' abc '.trim( );//去掉首尾的空格
' abc '.trimLeft( );//去掉左侧的空格
' abc '.trimRight( ) ;//去掉右侧的空格
  1. 替换字符串
'abc'.replace('a', 'b') // 'bbc'     局部替换
'aac'.replace(/a/g, 'b') // 'bbc'   全局替换
  1. 字符串分割成数组
'a,b,c'.split(',') // ['a', 'b', 'c']
  1. 数组转化成字符串
let array = ["George","John","Thomas"]
let str = array.join("|")   // "George| John| Thomas"
  1. 强转为字符串类型
let  number= 100;
number.toString();// "100"
  1. 返回某个字符串对象的原始值
let myDate=new Date()
myDate.valueOf();// 1583316878578  
//返回date 的毫秒表示。返回值和方法 Date.getTime 返回的值相等,返回1970年1月1日午夜以来的毫秒数。
  1. 字符串拼接
  '你好' + '小明'

 let name = '小明'
 `你好${name}`    // 注意: 这里不是双''符号,而是 ``

 'a'.concat('b');//‘ab’
  1. toUpperCase():把字符串转换为大写
  2. oLowerCase(): 返回一个字符串,该字符串中的字母被转换成小写。
3. 常用方法
  1. indexOf();返回 String 对象内第一次出现子字符串的字符位置,若没有发现则该方法返回 -1
let str="Hello world!"
console.log(str.indexOf("Hello")");// 0
console.log(str.indexOf("World") ");// -1,这里是大小写有区别,检索不出来
  1. 截取字符串
const str = "Hello, World!";
const subStr = str.substring(7, 12);  // 结果为 "World"

const str = "Hello, World!";
const subStr = str.substr(7, 5);  // 结果为 "World"

const str = "Hello, World!";
const subStr = str.slice(7, 12);  // 结果为 "World"
  1. 字符串中是否存在某个字符
   var str = "ABCDEF"; 
   str.search('CD')   // 2   返回与正则表达式查找内容匹配的第一个字符串的位置。如果没有匹配到子字符串,则返回-1。

   var name = "王汉炎";    //目标字符串
   name.includes('炎');   //  true;返回的是一个布尔值


数组
1.初始化
var  ary = new Array();// 创建一个空数组
var arr2 = new Array(20); // 创建一个包含20项的数组
var arr3 = new Array(“lily”,“lucy”,“Tom”); // 创建一个包含3个字符串的数组
var arr4 = []; //创建一个空数组
2. 数组新增
1. push() 方法:在数组的末尾添加一个或多个元素,并返回新的长度。
   let arr = [1, 2, 3];
   arr.push(4); // arr 现在是 [1, 2, 3, 4]

2. unshift() 方法:在数组的开头添加一个或多个元素,并返回新的长度。
   let arr = [1, 2, 3];
   arr.unshift(0); // arr 现在是 [0, 1, 2, 3]

3. splice() 方法:从数组中添加/删除项目,然后返回被删除的项目。
    let arr = [1, 2, 3];
    arr.splice(2, 0, 4); // 在索引2的位置添加4,arr 现在是 [1, 2, 4, 3]

4. 直接索引赋值:如果你知道具体位置,可以直接赋值。
    let arr = [1, 2, 3];
    arr[arr.length] = 4; // arr 现在是 [1, 2, 3, 4]

5. 动态新增(这里是将元素替换)
  this.$set(target, propertyName/index,  value)
   参数:  target 要改变的数据源(可以是一个对象或数组)
   参数: propertyName/index 要改变的对象属性名称 或 索引 
   参数:  value 新赋的值
示例:
  // 新增
  let array = [1, 2, 3];
  this.$set(array, 1, 100)   // [1, 100, 3] 

3. 数组删除
1. pop()方法: 用于把数组的最后一个元素从其中删除,并返回最后一个已删除元素的值
let arr = [1, 2, 3];
arr.pop(); // arr 现在是 [1, 2]

2. shift():删除原数组第一项,并返回第一项元素的值
let arr = [1, 2, 3];
arr. shift();    // 删除的第一项

3. Arrary.splice(start, deleteCount, item1 , item2);
 参数: start开始索引值
 参数: deleteCount  不为 0 时表示要删除的个数,为0时,为增加;
 参数: item1为增加的元素,
 参数: 改变后的数组
示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2);//["Apple", "Mango"]
// 2—起始索引值;2—删除个数


4. 删除数组中的指定元素:

  4.1 使用splice方法,直接在原数组中删除指定元素的位置。例如:
    const array = [1, 2, 3, 4, 5];
    const elementToRemove = 3;
    const index = array.indexOf(elementToRemove);
    if (index > -1) {
         array.splice(index, 1);
     }
    console.log(array); // [1, 2, 4, 5]

   4.2 使用filter方法,返回一个新数组,不包含指定元素的元素;
      const array = [1, 2, 3, 4, 5];
      const elementToRemove = 3;
      const newArray = array.filter(item => item !== elementToRemove);
      console.log(newArray); // [1, 2, 4, 5]

   4.3 通过id值来找到他的索引值,并利用 splice 进行删除
  del(id){
     var index = this.list.findIndex(item=>{
           if (item.id == id){
              return true;
          }
      })
      this.list.splice(index,1)
   }
   4.4 删除对象数组中的对象元素 ,注意这里的对象元素必须是数组中的元素对象,如果新建对象它的地址是不在 this.listData 中的, 获得的 index 永远是 -1
    let item =  this.listData[0]; 
    let index = this.listData.indexOf(item); // 获取待删除对象的索引
     if (index > -1) { // 如果索引存在
        this.listData.splice(index, 1); // 删除指定对象元素
        console.log("---- 打印: " + JSON.stringify(this.listData));
     }

   5. 删除数组中的重复元素:
    const array = [1, 2, 3, 4, 4, 5, 5];
    const newArray = Array.from(new Set(array));
    console.log(newArray); // [1, 2, 3, 4, 5]

4. 数组拼接
 var a = [1,2,3];
a.concat(4,5); // [1,2,3,4,5]

// 方法二
var ary3 =[...ary1, ...ary2];  // [1,2,3,4,5,6]

5. 数组根据下表替换某个元素
arr[index]=新值;
6. 数组和字符串互转
var a = [ 1, 2, 3, 4, 5, 6 ]; 
a.join("|"); //  "1|2|3|4|5|6"

var arr = [1,2,3,4,5,6,7,8,9,11];
let str = arr.toString(); // "1,2,3,4,5,6,7,8,9,11"

经典使用案例:

  • 根据 goods_id 删除数组对象中特定商品
1.1 利用filter返回一个不包含该指定商品的数组
const newCartList = cartList.filter(item => item.goods_id !== goods_id);

1.2 利用indexOf获取下标,在使用splice删除对应的下标元素
let index = this.listData.indexOf(item); // 获取待删除对象的索引
if (index > -1) { // 如果索引存在
    this.listData.splice(index, 1); // 删除指定对象元素
 }

1.3 使用 forEach() 和 delete
 array.forEach((e, i) => {
   if (e === element) delete array[i];
 });
  • 根据goods_id 更新数组对象中商品的状态
1.1 使用Map 返回一个修改后的数组对象
const newCartList = cartList.map(item => {
     if (item.goods_id === goods_id) {
         item.goods_count = 修改的数据;
      }
        return item;
  });

1.2 使用findIndex 获取对象下标,然后修改
const index = arr.findIndex(item => item.id === id);
  if (index !== -1) {
    arr[index].status = newStatus;
 }

1.3 利用find获取特定对象进行修改
let listData = [{name: '小明',age: 18},{name: '小黄',age:  26}]
let item = listData.find(item=>item.id === id)
  if (index !== -1) {
    item.status = newStatus;
 }

对象
1.初始化
var x = { };
2. 新增
var x = { }
x.name ="小屋先生"  // 新增了一条属性

// 动态新增
this.$set(target, propertyName/index,  value)
参数:  target 要改变的数据源(可以是一个对象或数组)
参数: propertyName/index 要改变的对象属性名称 或 索引 , 注意: 对象的属性要用 '' 包含起来
参数:  value 新赋的值
示例:  
 var dic = {};
 dic.name = '小黄';
 this.$set(dic, 'name', ' 大黄' )    //  {"name":" 大黄"}
3. 合并
let a = {   name: 'jack'};
let b = { age: 10 };
Object.assign(a, b);
console.log(a) //  {name: "jack", age: 10}
console.log(b) //  { age: 10 }
                
let c = { ...a, ...b }
console.log(c) //  {name: "jack", age: 10}
4. 属性方法
// 检查对象是否有某个属性
var obj = {
    key1: 'value1',
    key2: 'value2'
};
console.log(obj.hasOwnProperty('key1'));  // 输出: true
console.log(obj.hasOwnProperty('key3'));  // 输出: false

// 使用undefined检查对象是否具有某个属性
var obj = {
    key1: 'value1',
    key2: 'value2'
};
console.log(obj.key1 !== undefined);  // 输出: true
console.log(obj.key3 !== undefined);  // 输出: false

// 对象转 json 字符串
var data={name:'goatling'}
JSON.stringify(data) // '{"name":"goatling"}'

// json字符串转对象
var data='{"name":"goatling"}'
JSON.parse(data) // name:"goatling"

5. 遍历
 let obj = {
    'name': '小明',
    'age': 18,
    'address': '北京'
  }
 let keys = Object.keys(obj)      // ["name","age","address"]
 let values = Object.values(obj)  // ["小明",18,"北京"]

// for..in 获取的 index 是下标
 for (let index in this.listData) {
    let item = this.listData[index]
    console.log("-- 打印: " + JSON.stringify(item));
  }

// for..of 获取的 item 是数组对象中的对象元素
for (let item of this.listData) {
     console.log("-- 打印: " + JSON.stringify(item));
}

//使用Object.keys()结合forEach:
const obj = { a: 1, b: 2, c: 3 };
Object.keys(obj).forEach(key => {
  console.log(key, obj[key]);
});


Math对象

abs(x)——返回数的绝对值

ceil(x)——把数向上舍入 // 例如: Math.ceil(3.1) = 4

floor(x)——把数向下舍入

max(x, y)——返回最大值

min(x, y)——返回最小值

pow(x, y)——返回x的y次幂

random()——返回0-1间的随机数

round(x)——把数四舍五入为最接近的整数

sqrt(x)——返回数的平方根

相关文章

网友评论

      本文标题:字符串-数组-对象

      本文链接:https://www.haomeiwen.com/subject/ixrjcjtx.html