在 Javascript 中修改对象
Modifying an object in Javascript?
我有以下类型的对象:
{ body: { entry: { body: '' }, context: '' },
contextids:
[ { uid: 'ff992fa0-817a-11e4-bea0-299f5e3c3819',
name: 'deemeetreesNotebook' },
{ uid: 'ff992fa1-817a-11e4-bea0-299f5e3c3819', name: 'public' },
{ uid: 'ff992fa2-817a-11e4-bea0-299f5e3c3819', name: 'ideas' },
{ uid: 'ff992fa3-817a-11e4-bea0-299f5e3c3819',
name: 'thingsToLearn' },
{ uid: 'ff992fa4-817a-11e4-bea0-299f5e3c3819',
name: 'wayToRussia' },
{ uid: 'ff992fa5-817a-11e4-bea0-299f5e3c3819',
name: 'polysingularity' },
{ uid: 'ff992fa6-817a-11e4-bea0-299f5e3c3819',
name: 'infranodus' },
{ uid: 'ff992fa7-817a-11e4-bea0-299f5e3c3819',
name: 'artmital' } ],
internal: 1 }
我想通过这个对象重申,并以仅保留name
等于某个字符串的contextids
的方式对其进行修改(例如 thingsToLearn
)。
从原始对象中删除不需要的上下文 ID 的好方法是什么?
谢谢!
循环、检查、拼接:
var nameToKeep = "someId";
for (var i = 0; i < data.contextids.length; i++) {
if (data.contextids[i].name != nameToKeep) {
data.contextids.splice(i, 1);
i--;
}
}
听起来像是Array.filter的工作:
var d = {
body: {
entry: {
body: ''
},
context: ''
},
contextids: [{
uid: 'ff992fa0-817a-11e4-bea0-299f5e3c3819',
name: 'deemeetreesNotebook'
}, {
uid: 'ff992fa1-817a-11e4-bea0-299f5e3c3819',
name: 'public'
}, {
uid: 'ff992fa2-817a-11e4-bea0-299f5e3c3819',
name: 'ideas'
}, {
uid: 'ff992fa3-817a-11e4-bea0-299f5e3c3819',
name: 'thingsToLearn'
}, {
uid: 'ff992fa4-817a-11e4-bea0-299f5e3c3819',
name: 'wayToRussia'
}, {
uid: 'ff992fa5-817a-11e4-bea0-299f5e3c3819',
name: 'polysingularity'
}, {
uid: 'ff992fa6-817a-11e4-bea0-299f5e3c3819',
name: 'infranodus'
}, {
uid: 'ff992fa7-817a-11e4-bea0-299f5e3c3819',
name: 'artmital'
}],
internal: 1
};
d.contextids = d.contextids.filter(function(item) {
return item.name === "thingsToLearn";
});
alert(JSON.stringify(d.contextids));
相关文章:
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 可以从Chrome扩展修改窗口对象吗
- 修改JSON对象
- 使用AngularJS修改对象位置只需一次
- 修改express.js中的res对象
- 如何避免在这种情况下修改事件对象
- 修改鼠标事件对象的“目标”以进行事件委派
- Angular 2神秘地修改具有相同值的对象中的所有子嵌套相似对象
- Reactjs:在修改对象之前,是否需要复制处于组件状态的对象
- 重复修改ng内Angular Scope内的对象
- 如何通过使用谷歌地图从文本字段提交来修改javascript对象中的数据
- Lodash搜索对象属性并修改值
- 修改角度阵列对象加载
- 使用扩展运算符和析构函数运算符修改不可变对象的最短方法是什么
- 从函数内部修改角度工厂对象
- AngularJS:深度对象修改后视图不更新
- 为什么对象原型中的属性不能被对象修改
- 循环中的json对象修改不起作用
- 从子对象修改原型上的字段
- 为什么ngResource会在收到响应后将保存的对象修改为:g {0: "O", 1: "