Javascript 更改对象(如果存在)
我正在用对象填充数组。 我想检查具有特定Javascript 更改对象(如果存在),javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我正在用对象填充数组。 我想检查具有特定id的对象是否已经存在 如果对象存在,则替换对象中的值 例如: function art(id,value) { this.id=id; this.value=value; } 数组var my_array=[] 添加到数组my_array.push(艺术) 如何检查对象是否已存在,然后将其替换为新值。是否需要以下内容:- for (var i = 0; i < my_array.length; i++) { if(my_a
id
的对象是否已经存在
如果对象存在,则替换对象中的值
例如:
function art(id,value)
{
this.id=id;
this.value=value;
}
数组var my_array=[]代码>
添加到数组my_array.push(艺术)代码>
如何检查对象是否已存在,然后将其替换为新值。是否需要以下内容:-
for (var i = 0; i < my_array.length; i++) {
if(my_array[i].id=="SOMEID")
my_array[i].value="NEWValue";
}
for(var i=0;i
您想要这样的东西吗:-
for (var i = 0; i < my_array.length; i++) {
if(my_array[i].id=="SOMEID")
my_array[i].value="NEWValue";
}
for(var i=0;i
您可以使用:
var my_array = {};
function art(id, value)
{
this.id = id;
this.value = value;
}
// test 1:
var newArt1 = new art(1, "value");
if(typeof my_array[newArt1.id] === "undefined" ){ // check if id 1 exists in object;
my_array[newArt1.id] = newArt1.value;
}
// test 2:
var newArt2 = new art("xxx", "value");
if(typeof my_array[newArt2.id] === "undefined" ){ // check if id xxx exists in object;
my_array[newArt2.id] = newArt2.value;
}
您可以使用以下方法:
var my_array = {};
function art(id, value)
{
this.id = id;
this.value = value;
}
// test 1:
var newArt1 = new art(1, "value");
if(typeof my_array[newArt1.id] === "undefined" ){ // check if id 1 exists in object;
my_array[newArt1.id] = newArt1.value;
}
// test 2:
var newArt2 = new art("xxx", "value");
if(typeof my_array[newArt2.id] === "undefined" ){ // check if id xxx exists in object;
my_array[newArt2.id] = newArt2.value;
}
您应该使用密钥对类型关联数组,然后甚至不需要检查它是否存在,因为:
如果它不存在,将创建它
如果它确实存在,它将被覆盖
例如:
var my_array = new Array();
function art(id,value)
{
this.id=id;
this.value=value;
}
var myArt = new art(1,'value');
//if an array item with this id exists it will be overidden else a new
//array item will be created
my_array[myArt.id] = myArt;
为清晰起见进行了更新您应该使用密钥对类型关联数组,然后您甚至不需要检查它是否存在,因为:
如果它不存在,将创建它
如果它确实存在,它将被覆盖
例如:
var my_array = new Array();
function art(id,value)
{
this.id=id;
this.value=value;
}
var myArt = new art(1,'value');
//if an array item with this id exists it will be overidden else a new
//array item will be created
my_array[myArt.id] = myArt;
为清晰起见进行了更新请参见以下示例:
var my_array = [];
function art(id, value) {
this.id = id;
this.value = value;
}
function checkIfExistsAndReplace(inArr, object, newValue) {
for (i = 0; i < inArr.length; i++) {
if (inArr[i].id == object.id && inArr[i].value == object.value) {
inArr[i].value = newValue;
return inArr;
}
}
return false;
}
for (var i = 0; i < 5; i++) {
my_array.push(new art("name", i));
}
console.log(my_array);
console.log(checkIfExistsAndReplace(my_array, new art('name', 4), 'NEWVALUE'));
console.log(checkIfExistsAndReplace(my_array, new art('name', 5)));
var my_数组=[];
函数艺术(id、值){
this.id=id;
这个值=值;
}
函数checkIfExistsAndReplace(INAR、object、newValue){
对于(i=0;i
也可以看到下面的小提琴
请参见以下示例:
var my_array = [];
function art(id, value) {
this.id = id;
this.value = value;
}
function checkIfExistsAndReplace(inArr, object, newValue) {
for (i = 0; i < inArr.length; i++) {
if (inArr[i].id == object.id && inArr[i].value == object.value) {
inArr[i].value = newValue;
return inArr;
}
}
return false;
}
for (var i = 0; i < 5; i++) {
my_array.push(new art("name", i));
}
console.log(my_array);
console.log(checkIfExistsAndReplace(my_array, new art('name', 4), 'NEWVALUE'));
console.log(checkIfExistsAndReplace(my_array, new art('name', 5)));
var my_数组=[];
函数艺术(id、值){
this.id=id;
这个值=值;
}
函数checkIfExistsAndReplace(INAR、object、newValue){
对于(i=0;i
也可以看到下面的小提琴
我不确定您在寻找什么,但如果您想检查对象的特定id并替换它的值,我会比我想象的要多
for(var i = 0; i < my_array.length; i++){
if(my_array[i].id === "#123"){
my_array[i].value = "Some New Value to it"
}
}
for(var i=0;i
PS:始终使用===检查以避免==,因为==具有意外行为我不确定您要查找的是什么,但如果您想检查对象的特定id并替换其值,则
for(var i = 0; i < my_array.length; i++){
if(my_array[i].id === "#123"){
my_array[i].value = "Some New Value to it"
}
}
for(var i=0;i
PS:始终检查===尽量避免==,因为==有意外行为看看jQuery函数是否可以解决您的问题problem@user123_456如果以下任何一个答案都能解决你的问题,那么就值得将其标记为你的答案,它将来可能会帮助其他人:看看jQuery函数是否可以解决您的问题problem@user123_456如果以下任何一个答案解决了您的问题,那么将其标记为您的答案可能是值得的,这可能会在将来帮助其他人:当检查对象中的属性/键时,您不需要typeof
,只需执行if(我的数组[newArt1.id])
@仅当值为真时才起作用的metadings。如果值为假(未定义的,空的,0
,,NaN
),你的想法行不通。检查对象中是否存在的方法是使用in
或hasOwnProperty
。要检查它是否未定义,只需使用!==undefined
在不需要类型的对象中检查属性/键,只需执行if(我的数组[newArt1.id])
@仅当值为真时才起作用的metadings。如果值为假(未定义
,空
,0
,”
,NaN
),你的想法行不通。检查对象中是否存在的方法是使用in
或hasOwnProperty
。要检查它是否未定义
,只需使用!==未定义
如果密钥不存在,我不想创建k/v对,而只是忽略它怎么办?如果我不想创建k/v对怎么办如果密钥不存在,而只是忽略它?