複数のJavaScriptオブジェクトがあるとします
{"type":"gotopage","target":"undefined"}
{"type":"press","target":"a"}
{"type":"rotate","target":"long"}
このオブジェクトを別のオブジェクトに追加するにはどうすればよいですか
config={}
挿入された各オブジェクトに次のように追加できるIDがあるかどうかを知っています。
config["id"]={}
しかし、この場合、IDなしでオブジェクトを追加するにはどうすればよいですか?
オブジェクトと配列を混同していると思います。オブジェクトには名前付きキーがあり、配列には数値キーがあります。 .Push()
を使用して、配列に簡単に追加できます。
var arr = [];
arr.Push("something");
ただし、変数名が示す構成オブジェクトの場合、これは実際には役に立ちません。オプションには意味のある名前を使用する必要があります。例:
var config = {
something: 'blah',
foo: 'bar'
};
オブジェクトに配列を格納することもできます:
config.manyStuff = [];
for(...) {
manyStuff.Push(...);
}
var obj1 = {"type":"gotopage","target":"undefined"};
var config = {};
config.obj1 = obj1;
後からいつでも追加できます。
var obj1 = {"type":"gotopage","target":"undefined"};
var config = {};
config.obj1 = obj1;
var obj2 = {"key":"data"};
config.obj2 = obj2;
これらのデータが同じタイプの場合は、代わりに配列を使用します。
var some_data = {"type":"gotopage","target":"undefined"}
var config = [];
var config.Push(some_data); //and do this for the rest
そして、あなたはこのような設定項目にアクセスできます:
var someVariable = config[index]; //where index is a number starting from 0
このユーティリティ関数を使用しています:
module.exports.combine = function() {
var rv = {};
for (i = 0; i < arguments.length; i++) {
for (thing in arguments[i]) {
rv[thing]=arguments[i][thing];
}
}
return rv;
}
同じ名前のプロパティは、後の引数のプロパティによって上書きされます
var util = require('lib/util.js');
console.log(util.combine(
{"1":"one","two":function(){;},
{"four":{"four.5":"four.5-b"}, "5":"foo"}});
結果:
{ '1': 'one',
'5': 'foo',
two: [Function],
four: { 'four.5': 'four.5-b' } }
オブジェクトを追加する場合は、use spread演算子を使用して簡単に追加できます。
例->
object1 = { property1: 1, property2: 2}
finalObject = [{...object1}]
finalObject = {... object1}
そしてあなたの質問の解決策に従って、ここで配列オブジェクトを使用します
finalObject = [{... object1}]
object1 = { property1: 1, property2: 2}
finalObject = [{...object1}]
document.getElementById("demo").innerHTML = JSON.stringify(finalObject);
<div id = "demo"></div>