js给对象添加变量属性 & js 更改对象中的属性名 & 数组对象中每个对象添加一个字段-map用法和forEarch用法

js给对象添加变量属性 & js 更改对象中的属性名 & 数组对象中每个对象添加一个字段-map用法和forEarch用法

1、js给对象添加变量属性

1、js创建一个对象或者在原有对象上添加一个已知属性,并给这个属性赋值,写法如下:

let obj = {'a1':'a1'};
obj['a2'] = 'a2';
console.log(obj);//输出{'a1':'a1','a2':'a2'};

2、添加一个变量属性,并赋值变量,写法如下:

function add(name,value){
    let obj = {"a1":"a1"};
    obj[name] = value;//返回参数
    console.log(obj);//{"a1":"a1","b1":"b1"}
}
add("b1","b1");

3、js 更改对象中的属性名

const json = JSON.parse(JSON.stringify(options).replace(/name/g,"label"));

注:

1、options是需要更改属性的对象

2、replace(/name/g,“label”) ,将对象里所有属性为name的都修改成label

2、js把数组里面的所有对象合并成一个对象

let obj = [{
         name1: '张三',
         age1: "12"
    },
    {
         name2: '李四',
         age2: "14"
    },
    {
         name3: '王五',
         age3: "30"
    }
]

let newObj = {} // 新建一个对象

obj.forEach((item) => {
    newObj = {
         ...newObj,
          ...item
    } // 要把自己放进去
})
console.log(newObj) // { name1: "张三", age1: "12", name2: "李四", age2: "14", name3: "王五", age3: "30" }

3、数组对象中每个对象添加一个字段

小案例

let arr = [{
     'name': 'aa',
     'age': 10
   },
   {
      'name': 'bb',
      'age': 12
   }
]
let newArr = []
    arr.map((item, index) => {
    newArr.push(
        Object.assign({}, item, {
             id: index
        })
    )
})


console.log(arr) // [ {'name': 'aa', 'age': 10},{'name': 'bb', 'age': 12}]
console.log(newArr)
        // [ {name: "aa", age: 10, id: 0},{name: "bb", age: 12, id: 1}]
详解

将数组对象中每一个对象添加一个字段

let arr = [
    {name: 'lilei',age: '25'},
    {name: 'nike',age: '23'},
    {name: 'alisa',age: '23'}
]
使用Array map()方法

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值,有三个参数
1、currentValue 必须。当前元素的值
2、index 可选。当前元素的索引值
3、index 可选。当前元素属于的数组对象

let _arr = []
arr.map((item, index) => {
	_arr.push(Object.assign({},item,{sex: 'men'}))
}))
//  _arr返回结果
[
   {name: 'lilei',age: '25',sex: 'men'},
   {name: 'nike',age: '23',sex: 'men'},
   {name: 'alisa',age: '23',sex: 'men'}
]

小案例

 let arr = [23, 31, 60, 88, 90, 108, 260]
        /* 1. 需求:数组中的每一个元素+1 */
        let arr1 = arr.map((value, index) => {
            return value + 1 //让每个元素的值+1
        })
        console.log(arr1); //) [24, 32, 61, 89, 91, 109, 261]

        /* 2.需求:超过100的商品打八折 */
        let arr2 = arr.map((value, index) => {
            if (value > 100) {
                return value * 0.8

            } else {
                return value;
            }
        })
        console.log('arr2', arr2); // [23, 31, 60, 88, 90, 86.4, 208]
使用Array forEach()方法

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
1、currentValue 必须。当前元素的值
2、index 可选。当前元素的索引值
3、index 可选。当前元素属于的数组

arr.forEach((value , index) => {
	value['sex'] = 'men'
})
//  返回原数组arr
[
   {name: 'lilei',age: '25',sex: 'men'},
   {name: 'nike',age: '23',sex: 'men'},
   {name: 'alisa',age: '23',sex: 'men'}
]

综合实例

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
</head>

<body>
    <script>
        let arr = [{
                'name': 'aa',
                'age': 10
            },
            {
                'name': 'bb',
                'age': 12
            }
        ]
        let newArr = []
        arr.map((item, index) => {
            newArr.push(
                Object.assign({}, item, {
                    id: index
                })
            )
        })



        console.log(arr) // [ {'name': 'aa', 'age': 10},{'name': 'bb', 'age': 12}]

        console.log(newArr)
        // [ {name: "aa", age: 10, id: 0},{name: "bb", age: 12, id: 1}]

        let ary = [{
                name: 'lilei',
                age: '25'
            },
            {
                name: 'nike',
                age: '23'
            },
            {
                name: 'alisa',
                age: '23'
            }
        ]
        ary.forEach((value, index) => {
            value['sex'] = 'men'
        })
        console.log(ary)
    </script>
</body>

</html>

效果图-数组对象中添加字段

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值