javascript - 如何推送到现有数组的对象
问题描述
我有一个数组,我正在循环遍历并根据条件为我的变量分配一个整数。然后我想将此变量推送到我现有的数组中。目前,推送时正在创建一个新索引。我希望将变量包含在数组的现有索引中。这是我的代码示例:
let data = [{
"title": "Online",
"state": "California"
}, {
"title": "Retail",
"state": "New York"
}, {
"title": "Appointments",
"state": "Florida"
}]
let varInt = 0;
let intArr = []
for (let i = 0; i < data.length; i++) {
if (data[i].title && data[i].title.includes("Online")) {
varInt = 1;
intArr = {
"varInt": varInt
}
data.push(intArr)
console.log(data)
}
}
我的预期结果是有一个看起来像这样的数组:
data = [{
"title": "Online",
"state": "California",
"varInt": 1
}, {
"title": "Retail",
"state": "New York"
}, {
"title": "Appointments",
"state": "Florida"
}]
解决方案
如果您想修改数组中满足特定条件的项目,我建议您使用 map 函数:
let data = [{"title": "Online", "state": "California"}, {"title": "Retail", "state": "New York"}, {"title": "Appointments", "state": "Florida"}]
data = data.map(item=>{
let meetsCondition = item.title && item.title.includes("Online")
let varInt = 1
if(!meetsCondition)
return item
else{
item.varInt = varInt
return item
}
})
或者,如果您必须使用 for 循环:
for (let i = 0; i < data.length; i++) {
if(data[i].title && data[i].title.includes("Online")) {
varInt = 1;
intArr = {"varInt": varInt}
data[i].intArr = intArr
console.log(data)
}
}
推荐阅读
- powershell - PowerShell:解析 CSV 文件并仅删除第三个逗号
- c++ - 如何正确从 TableView 中删除行
- javascript - 'this' 在回调上下文中未定义
- php - PHP - 无法访问此站点 ERR_EMPTY_RESPONSE
- python - 权限通知电子邮件不适用于服务帐户
- amazon-web-services - 如何使用 SAM 调试创建 Cognito PostConfirmation 触发器
- python - Python如何用patch.object修补整个对象
- bash - 如何在 bash 命令中打破 jq 中的长字符串?
- html - 在html页面中水平对齐表格的元素
- cross-domain - XMLHTTPRequest - 不能对响应做任何事情