假设我有这个
var names = [
{
"First": "Jim",
"Last": "Jones"
},
{
"First": "Mike",
"Last": "Smith"
},
{
"First": "Joe",
"Last": "Johnson"
}
]
现在我想向该数组中的每个对象添加一个带有中间名的“ Middle”字段。我可以简单地做到吗?在这种情况下,推送似乎不存在。
答案 0 :(得分:2)
您可以使用obj.Middle
或obj["Middle"]
进行分配:
但是如果您希望排序实际上是中间的,那么就不能,因为ES6属性名称首先按数字(作为字符串)排序,然后按插入顺序排序。
var names = [{
"First": "Jim",
"Last": "Jones"
},
{
"First": "Mike",
"Last": "Smith"
},
{
"First": "Joe",
"Last": "Johnson"
}
];
names.forEach(obj => obj.Middle = "N/A");
console.log(names);
答案 1 :(得分:0)
您可以在.map
对象上使用Array
方法来创建新的数组,而无需更改原始数组。
push
将新条目添加到数组,并且不更新该项。
var names = [{
"First": "Jim",
"Last": "Jones"
},
{
"First": "Mike",
"Last": "Smith"
},
{
"First": "Joe",
"Last": "Johnson"
}
];
var updatedNames = names.map(name => {
const {
First,
Last
} = name;
return {
First,
Last,
Middle : 'middle name'
}
});
console.log(updatedNames);
答案 2 :(得分:0)
map方法可用于实现这一目标,
let newNamesArray = names.map(name => {
return {
...name,
"Middle": "The middle name you want"
}
});
names = newNamesArray;
答案 3 :(得分:0)
您还可以通过使用.assign
的{{1}}方法和Object
的{{1}}方法来实现此目的
.map
请注意,如果要将获取的名称与旧名称分开,这将非常有用。为此,除了影响结果的名称之外,还可以简单地创建另一个变量
Array
正如我所说的,anotherNames和Names变量是完全独立的