我刚刚开始这样做,所以我对如何使用以下内容感到困惑。
// so I believe this really isn't an object just a string representation, but for example please excuse the name
var dataObj = "{'id': 1,
'data': { 'color': 'red',
'shape' : 'triangle',
'height' : 100,
'width' : 45,
},
'id': 2,
'data': { 'color': 'blue',
'shape' : 'square',
'height' : 75,
'width' : 67,
},
'id': 3,
'data': { 'color': 'orange',
'shape' : 'circle',
'height' : 89,
'width' :24,
}
}";
所以我遇到的问题是如何通过id更新数据值的特定子集(如SQL UPDATE WHERE类似的东西)? javascript或jquery对我来说无关紧要,只是不知道两种方法。
dataObjUpdate(2);
function dataObjUpdate (passedID) {
//access the data by the passedID match and update the color to black
}
感谢帮助人....
答案 0 :(得分:2)
如果我们忽略我留下的评论并假设你有一个JavaScript对象。我看到以下问题:
以下是我自己构建对象的方法:
var data = [{
color : 'red',
shape : 'triangle',
height : 100,
width : 45,
id:1
},
{
color: 'blue',
shape : 'square',
height : 75,
width : 67,
id: 2
},
{
color: 'orange',
shape : 'circle',
height : 89,
width :24,
id :3
}];
现在,我可以像使用filter
一样查询它:
var id3 = data.filter(function(elem){
return elem.id === 3;
})[0];
id3;//the third object, with id 3
ES6有一个名为find
的方法,可以在最后保存[0]
(这意味着第一个元素)
var id3 = data.find(function(elem){
return elem.id === 3;
});
id3;//the third object, with id 3
或者,您可以使用简单的for循环
var id3 = (function find(arr){
for(var i=0;i<arr.length;i++){
if(arr[i].id === 3){
return arr[i];
}
}
})(data);
id3;