配列をオブジェクトで埋めています。id
特定のオブジェクトが既に存在するかどうかを確認したい。
オブジェクトが存在する場合value
は、オブジェクトを置き換えます。
例えば:
function art(id,value)
{
this.id=id;
this.value=value;
}
配列var my_array=[];
配列への追加my_array.push(art);
オブジェクトが既に存在するかどうかを確認し、新しい値に置き換える方法。
配列をオブジェクトで埋めています。id
特定のオブジェクトが既に存在するかどうかを確認したい。
オブジェクトが存在する場合value
は、オブジェクトを置き換えます。
例えば:
function art(id,value)
{
this.id=id;
this.value=value;
}
配列var my_array=[];
配列への追加my_array.push(art);
オブジェクトが既に存在するかどうかを確認し、新しい値に置き換える方法。
このようなものが欲しいですか:-
for (var i = 0; i < my_array.length; i++) {
if(my_array[i].id=="SOMEID")
my_array[i].value="NEWValue";
}
キー ペア タイプの連想配列を使用する必要があります。次の理由により、その存在を確認する必要さえありません。
例:
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;
明確にするために更新
そのために使用できますObject
:
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;
}
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)));
以下のフィドルも参照してください