常见数组对象之间的各种转

1.纯数组与纯数组的合并

concat () 、for+push ()、push.apply ()

    var arr1 = [1,2,3]
    var arr2 = [4,5,6]
    
    a.concat()
    
    var arr3 = arr1.concat(arr2);
    console.log(arr3) //[1,2,3,4,5,6]
    

    b.for循环+push()追加
    
    for(var i=0;i<arr2.length;i++){
        arr1.push(arr2[i])
    }
    console.log(arr1) //[1,2,3,4,5,6]


    c.apply()
    
    arr1.push.apply(arr1,arr2);
    console.log(arr1) //[1,2,3,4,5,6]
    

2.纯数组增

push()、unshift () 、splice ()

   var arr1 = [1,2,3]

   在原数组后面追加
   arr1.push(3.1,3.2); //[1,2,3,3.1,3.2]
   
   在原数组前面追加
   arr1.unshift(-1,0);//[-1,0,1,2,3]
   
   在原数组指定位置追加
   arr1.splice(2,0,'随意插入');//[1, 2, "随意插入",3]
   
   splice(index,howmuch,element1,.....,elementN) //从数组中添加/删除项目,依次有三个参数   
   index:第一个参数是开始执行的索引
   howmuch:第二个参数是要删除的元素数量,如果设置为 0,则不会删除任何元素
   element:第三个是向数组添加的新元素

3.纯数组删

splice() 、delete

    var arr1 = [1,2,3]
    
    arr1.splice(1,1); //[1,3]
       
    delete arr[0]; //[undefined, 2, 3, 4] 基本不会用到,没必要多一个未定义的值  
 

4.纯数组改

  var arr1 = [1,2,3]
  
  arr1[0] = 0
  
  console.log(arr1) //[0,2,3]

5.纯数组取

  var arr1 = [1,2,3]
  arr1[0]  // 1

6.纯数组 转 字符串

toString()、join()

   var arr1 = [1,2,3]
   
   var arr2 = arr1.toString() //1,2,3 直接转成字符串类型
   
   var arr2 = arr1.join(',') //1,2,3 用逗号隔开组成字符串,也可用分号,自定义都行

7.纯数组 转 对象

for循环并赋值给空对象、{…原始数组}、object.assign({},原始数组)

  var arr1 = [1,2,3]
  
  a.建立空对象,for循环数组,给空对象依次赋值等于数组对应的数据
  
  var object1 = {};
  for(var i=0; i<arr1.length; i++) {
        object1[i] = arr1[i];
  } //{0: 1, 1: 2, 2: 3}

  
  b.map循环,与上法一致
  
  var object1 = {}
  arr1.map((item,index)=>{object1[index] = item})  //{0: 1, 1: 2, 2: 3}
  
  
  c. {...原始数组} 扩展运算符
  
  var object1 = {...arr1}  //{0: 1, 1: 2, 2: 3} 默认将索引转换成key
  
  d.object.assign({},原始数组) 对象拷贝法
  
  var object1 = Object.assign({},arr1)  //{0: 1, 1: 2, 2: 3} 默认将索引转换成key  


8.纯数组 转 数组对象

【for循环、{…原始数组}、object.assign({},原始数组)】==>追加至数组中

 var arr1 = [1,2,3]
 
 a.for循环纯数组,新建数组,新建对象,先将纯属组转换成新对象,再将新对象追加至新数组里面去
 
 var arrObject = [];
 for(var i=0; i<arr1.length; i++) {
    var object1 = {};
    object1[i] = arr1[i];
    arrObject.push(object1)
 }  // [{0:1},{1:2},{2:3}]
 

 b.map循环,与上法一致
 
 var arrObject = [];        
 arr1.map((item,index)=>{
      var object1 = {}
      object1[index] = item           
      arrObject.push(object1)
 })  // [{0:1},{1:2},{2:3}]
 

 c. {...原始数组} 扩展运算符+追加
 
  var arrObject = []; 
  var object1 = {...arr1}  
  arrObject.push(object1) // [{0:1},{1:2},{2:3}]
  
  
  d.object.assign({},原始数组) 对象拷贝法+追加
  
  var arrObject = []; 
  var object1 = Object.assign({},arr1) 
   arrObject.push(object1) // [{0:1},{1:2},{2:3}]

9.纯数组 转 数组对象并自定义设置key

map循环

 map循环原数组,建立新对象,循环体内建立命名最新对象,循环体内赋值命名给最新对象,外部全局赋值即可
  var arr1 = [1,2,3]
  var OldObject = arr1.map((item, index) => {
  	 var newObject = {}
     newObject.testKey = item;
        return newObject
  })
  console.log(OldObject)   // [ {testKey: 1}, {testKey: 2}, {testKey: 3}]

10.纯对象 与 纯对象的合并

Object.assign 、for in循环

  var obj1 = {a:1,b:2,c:3}
  var obj2 = {d:4,d:5,e:6}
  
  a. Object.assign ()
  
  var obj3 = Object.assign(obj1,obj2);
  // {a: 1, b: 2, c: 3, d: 5, e: 6}


  b.for in循环对象
  
  for(var i in obj2 ){
      obj1[i] =obj2[i];  //将两个对象数据整合
  } // {a: 1, b: 2, c: 3, d: 5, e: 6}


11.纯对象增

 var obj1 = {a:1,b:2,c:3}
 obj1.d = 4
 // {"a": 1,"b": 2, "c": 3, "d": 4}

12.纯对象删

delete

 var obj1 = {a:1,b:2,c:3}  
   
 delete obj1.c;  // {a: 1,b: 2}

13.纯对象改

  var obj1 = {a:1,b:2,c:3}  
   
  obj1.a = 0;  // {a: 0,b: 2,c:3}

14.纯对象取

 var obj1 = {a:1,b:2,c:3}  
   
 var val = obj1.a // 1 取指定值
 
 var allVal = Object.values(obj1) // [1,2,3] //取整个对象的所有属性值
 
 var allKey = Object.keys(obj1) // [“a”,"b","c"] //取整个对象的所有属性名

15.纯对象转字符串

JSON.stringify

 var obj1 = {a:1,b:2,c:3}  
 var obj2 = JSON.stringify(obj1) // {"a":1,"b":2,"c":3}

16.纯对象转数组

push()

 var obj1 = {0:1,1:2,2:3}  
 var obj2 = []
 obj2.push(obj1)
 console.log(obj2) //[{0: 1, 1: 2, 2: 3}] 整体转为数组 若只取键或值可参考14取键值

17.纯对象转数组对象

for循环+键值赋值+push()

var obj1 = {a: 1, b: 2, c: 3};
var arr = [];

for(var key in obj1){
  var item = {};
  item[key] = obj1[key];
  arr.push(item);
}
console.log(arr);  // [{a: 1}, {b: 2}, {c: 3}]

18.对象转数组对象并自定义设置key

纯对象转换成数组对象方法参考 法17 一致,然后利用 法14 取出所有属性值再利用 法9
Tips:统一修改数组对象的key,就先取到每个属性值用数组的方式存储,再将纯数组转换成数组对象并自定义属性key

19.数组对象合并

map循环+{…}

  var obj1 = [
  {
    name:'小李',
    age:'22'
  }, 
  {
    name:'老李',
    age:'24'
  }];
 
 var obj2 = [
 {
  hoby:'trip'
 }, 
 {
   hoby:'game'
 }];
 
  var obj = obj1.map((item,index) => {
      return {...item, ...obj2[index]};
 });
console.log(obj); 
//[ {name: "小李", age: "22", hoby: "trip"},
//  {name: "老李", age: "24", hoby: "game"} ]

20.数组对象增

  var obj1 = [{
    name:'小李',
    age:'22'

}, {
  name:'老李',
  age:'24'

}];

// 给所有对象统一增加sex属性
var obj = []

obj1.map((item, index) => {
	obj.push(Object.assign({},item,{sex: 'men'}))
})
console.log(obj)//[{name: "小李", age: "22", sex: "men"},{name: "老李", age: "24", sex: "men"}]

21.数组对象删

map+delete

  var obj1 = [{
    name:'小李',
    age:'22'

}, {
  name:'老李',
  age:'24'

}];

//删除指定属性
obj1.map(item=>{
delete item.age
})
console.log(obj1) //[ {name: "小李"}, {name: "老李"}]

22.数组对象改

  var obj1 = [{
    name:'小李',
    age:'22'

}, {
  name:'老李',
  age:'24'

}];

//更改指定属性名
obj1 = JSON.parse(JSON.stringify(obj1).replace(/name/g,"realName"));
console.log(obj1) // // [{realName: "小李", age: "22"},{realName: "老李", age: "24"}]

23.数组对象取

  var obj1 = [{
    name:'小李',
    age:'22'

}, {
  name:'老李',
  age:'24'

}];

// 使用map()生成数组
var arr = obj1.map(obj1 => {return obj1.name})
console.log(arr) //  ["小李", "老李"]

24.数组对象转对象

参考法23取出值,以数组的形式存储,再将该数组参考法7转换成对象

25.数组对象转数组

参考法23取出值,以数组的形式存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值