javascript - find() 操作对象的替代方法
问题描述
这是我的原始数据/参数:
const reference = ["gYDJWsfSHFBzoGjya", "hp9v53uQqQPRXSYAi"] // expected new reference value
const elementID = "XyLChbksZjenyEHqL" // ID of the array object which should be updated
const data = {
getContent: {
content: [
{ _id: "XyLChbksZjenyEHqL", reference: ['hp9v53uQqQPRXSYAi'] },
// some more objects here
]
}
}
现在我需要用特定的 id 设置数组对象的引用值。
const result = {
getContent: {
content: [
{ _id: "XyLChbksZjenyEHqL", reference: ["gYDJWsfSHFBzoGjya", "hp9v53uQqQPRXSYAi"] },
// some more objects here
]
}
}
我是这样做的:
data.getContent.content
.find(({ _id }) => _id === elementID).reference = reference
但由于 IE11 不支持 find(),我想问是否有另一种方法来完成这项工作。我不想为那个简单的事情使用 polyfill。
解决方案
您可以使用forEach
:
data.getContent.content.forEach((element)=>{
if (element.id === elementID){
element.reference = reference;
}
});
它以类似的方式工作。您将 a 传递callback
给forEach
函数,它会在数组的每个元素上执行该回调。
然后,检查当前正在处理的元素是否id
与elementID
.
如果是,那么您reference
将该特定元素的 设置为您想要的任何内容。
推荐阅读
- javascript - 如何将绿色 div 放在红色 div 下?
- reinforcement-learning - 是否可以使用 ray Tune 搜索算法指定“episodes_this_iter”?
- windows - Windows 服务始终监听端口 8080,即使被杀死
- java - 将字符串粘贴到控制台行以供用户编辑?
- excel - 让输入框条目位于列中的特定文本之后
- ios - 合并和通知中心:通知不起作用
- javascript - 当值相同时使用回调获取执行
- ruby-on-rails - Rails API 如何发送活动记录验证错误?
- angular - angular @ngrx - redux 我应该在哪里处理不改变状态的导出等操作
- kubernetes - Kubernetes - 为 Windows Pod 和容器配置 GMSA