Javascript 我有一个对象数组,如果类型是数字,我想改变值
到目前为止,我已经有了这一点,但当我在检查人员时,它不会将年龄键的值更改为前缀“$”。我想假设我不知道哪些值属于数字类型,所以我想做一个检查,将其更改为$23、$3、$8等Javascript 我有一个对象数组,如果类型是数字,我想改变值,javascript,arrays,object,javascript-objects,Javascript,Arrays,Object,Javascript Objects,到目前为止,我已经有了这一点,但当我在检查人员时,它不会将年龄键的值更改为前缀“$”。我想假设我不知道哪些值属于数字类型,所以我想做一个检查,将其更改为$23、$3、$8等 const people = [ {name: 'John', age: 23, sex: "male"}, {name: 'Andrew', age: 3, sex: "male"}, {name: 'Peter', age: 8, sex: "
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;
}
}
});
因为op声明不知道财产名称。您需要使用键来获取属性,然后检查类型,然后使用键更新值
const people=[
{姓名:“约翰”,年龄:23岁,性别:“男”},
{姓名:'Andrew',年龄:3岁,性别:“男”},
{姓名:'彼得',年龄:8岁,性别:'男'},
{姓名:“汉娜”,年龄:14岁,性别:“男”},
{姓名:'亚当',年龄:37岁,性别:'男'}];
people.forEach(obj=>{
Object.keys(obj.forEach)(key=>{
if(对象类型[键]=“编号”){
obj[key]=“$”+obj[key];
}
});
});
console.log(人)代码>,因为op声明属性名称未知。您需要使用键来获取属性,然后检查类型,然后使用键更新值
const people=[
{姓名:“约翰”,年龄:23岁,性别:“男”},
{姓名:'Andrew',年龄:3岁,性别:“男”},
{姓名:'彼得',年龄:8岁,性别:'男'},
{姓名:“汉娜”,年龄:14岁,性别:“男”},
{姓名:'亚当',年龄:37岁,性别:'男'}];
people.forEach(obj=>{
Object.keys(obj.forEach)(key=>{
if(对象类型[键]=“编号”){
obj[key]=“$”+obj[key];
}
});
});
console.log(人)
您可以映射人员
数组,并有条件地修改对象中属性的值。请注意,使用map
将为您提供一个新数组
const people=[
{姓名:“约翰”,年龄:23岁,性别:“男”},
{姓名:'Andrew',年龄:3岁,性别:“男”},
{姓名:'彼得',年龄:8岁,性别:'男'},
{姓名:“汉娜”,年龄:14岁,性别:“男”},
{姓名:'亚当',年龄:37岁,性别:'男'}];
const result=people.map(obj=>{
返回Object.fromEntries(Object.entries(obj.map)([k,v])=>{
返回(typeof v=='number')?[k,`${v}`]:[k,v];
}));
});
console.log(result)
您可以映射人员数组,并有条件地修改对象中属性的值。请注意,使用map
将为您提供一个新数组
const people=[
{姓名:“约翰”,年龄:23岁,性别:“男”},
{姓名:'Andrew',年龄:3岁,性别:“男”},
{姓名:'彼得',年龄:8岁,性别:'男'},
{姓名:“汉娜”,年龄:14岁,性别:“男”},
{姓名:'亚当',年龄:37岁,性别:'男'}];
const result=people.map(obj=>{
返回Object.fromEntries(Object.entries(obj.map)([k,v])=>{
返回(typeof v=='number')?[k,`${v}`]:[k,v];
}));
});
console.log(结果)
res=people.map((elem)=>{
for(让输入元素){
如果(元素类型[键]=‘编号’){
元素[键]+='$';
}
}
返回元素;
})
res=people.map((elem)=>{
for(让输入元素){
如果(元素类型[键]=‘编号’){
元素[键]+='$';
}
}
返回元素;
})
我想在它前面加上前缀,并将其更改为前面有$val
是属性值的副本。更改其内容不会修改对象中属性的值。这是问题的概括吗?或者您只想升级age属性?如果是这样,您基本上可以使用arr.age='$'+arr.age
。如果你想要一个通用的解决方案,你可能需要键而不是值。我想假设我不知道哪个键的值是数字类型,因此我用typeofIterate检查键(Object.keys()
,for…in…
)而不是我想要预先设置的值,并将其更改为前面有$val
是属性值的副本。更改其内容不会修改对象中属性的值。这是问题的概括吗?或者您只想升级age属性?如果是这样,您基本上可以使用arr.age='$'+arr.age
。如果你想要一个通用的解决方案,你可能需要键而不是值。我想假设我不知道哪个键的值是数字类型,因此我用typeofIterate检查键(Object.keys()
,for…in…
)而不是值