我有一个对象数组,如果类型是数字,我想更改值

到目前为止我有这个,但是当我检查人之后它不会改变年龄键值以添加“$”。我想假设我不知道哪些值是数字类型,所以我想做一个检查和将其更改为 23 美元、3 美元、8 美元等。


const people = [

    {name: 'John', age: 23, sex: "male"}, 

    {name: 'Andrew', age: 3, sex: "male"}, 

    {name: 'Peter', age: 8, sex: "male"}, 

    {name: 'Hanna', age: 14, sex: "male"}, 

    {name: 'Adam', age: 37, sex: "male"}];



let indVals;


people.forEach(function(arr) {

    indVals = Object.values(arr);

    console.log('Individual values: ',indVals);

    for(let val of indVals) {

        if ( typeof val === "number") {

            val = "$" + val;

        }

    }

});


慕运维8079593
浏览 107回答 3
3回答

慕的地8271018

由于 op 声明属性名称未知。您需要使用键来获取属性,然后检查类型,然后使用键更新值。 const people = [{name: 'John', age: 23, sex: "male"}, {name: 'Andrew', age: 3, sex: "male"}, {name: 'Peter', age: 8, sex: "male"}, {name: 'Hanna', age: 14, sex: "male"}, {name: 'Adam', age: 37, sex: "male"}];people.forEach(obj=> {   Object.keys(obj).forEach(key=>{       if (typeof obj[key] === "number") {      obj[key] = "$" + obj[key];    }  });});console.log(people);

尚方宝剑之说

您可以数组并有条件地修改对象中属性的值map。people请注意, usingmap将为您提供一个新数组。const people = [    {name: 'John', age: 23, sex: "male"},     {name: 'Andrew', age: 3, sex: "male"},     {name: 'Peter', age: 8, sex: "male"},     {name: 'Hanna', age: 14, sex: "male"},     {name: 'Adam', age: 37, sex: "male"}];        const result = people.map(obj => {  return Object.fromEntries(Object.entries(obj).map(([k, v]) => {   return (typeof v === 'number') ? [k, `$${v}`] : [k, v];  }));});console.log(result)

Qyouu

res = people.map((elem) => {    for(let key in elem){        if(typeof elem[key] == 'number'){            elem[key] += '$';        }    }    return elem;})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript