Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使对象为空的高效内存方法?_Javascript_Json - Fatal编程技术网

在javascript中使对象为空的高效内存方法?

在javascript中使对象为空的高效内存方法?,javascript,json,Javascript,Json,基本上,我想做的是,每次使用单个对象后,当我的目的实现时,将其变为空。 对于javascript中的数组,我曾经编写arr.length=0使任何数组为空,而不是将其指向不同的内存位置。有什么方法可以清空javascript中的对象吗? 情况是: var obj = {}; obj["name"]="Aman"; obj["country"]="India"; console.log(obj); // output is { name: 'Aman', country: 'India' } 删

基本上,我想做的是,每次使用单个对象后,当我的目的实现时,将其变为空。
对于javascript中的数组,我曾经编写
arr.length=0
使任何数组为空,而不是将其指向不同的内存位置。有什么方法可以清空javascript中的对象吗?
情况是:

var obj = {};
obj["name"]="Aman";
obj["country"]="India";
console.log(obj); // output is { name: 'Aman', country: 'India' }

删除此对象的内容后,是否可以重新使用该对象?如果是这样的话,怎么做?

我能想到的唯一方法就是循环对象,然后依次删除每个属性

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

for (var prop in obj) {
    // Possibly with a hasOwnProperty test, depending on how empty you want it to be
    delete obj[prop];
}

console.log(obj);
显然,如果您不处理对对象的多个引用,您可以用一个新引用覆盖它

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

obj = {};

console.log(obj);

我能想到的唯一方法是在对象上循环并依次删除每个属性

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

for (var prop in obj) {
    // Possibly with a hasOwnProperty test, depending on how empty you want it to be
    delete obj[prop];
}

console.log(obj);
显然,如果您不处理对对象的多个引用,您可以用一个新引用覆盖它

var obj = {};
obj["name"]="Aman";
obj["country"]="India";

obj = {};

console.log(obj);
使用ECMAScript 6映射:

var obj = new Map();
obj.set("name", "Aman");
obj.set("country", "India");
obj.clear();
使用ECMAScript 6映射:

var obj = new Map();
obj.set("name", "Aman");
obj.set("country", "India");
obj.clear();


JSON是一种数据格式。你说的是“一个对象”,它没有JSON。@JoeSimmons-这不会清空对同一对象的任何其他引用。@Quentin是的,我同意JSON是一种数据格式,但我的目的是将其清空。你必须使用
for..in
循环来擦除属性。您还应该使用
hasOwnProperty
确保只删除它自己的属性。从问题和标题中删除JSON一词。它与JavaScript对象无关。JSON是一种数据格式。你说的是“一个对象”,它没有JSON。@JoeSimmons-这不会清空对同一对象的任何其他引用。@Quentin是的,我同意JSON是一种数据格式,但我的目的是将其清空。你必须使用
for..in
循环来擦除属性。您还应该使用
hasOwnProperty
确保只删除它自己的属性。从问题和标题中删除JSON一词。它与JavaScript对象无关。请确保使用
hasOwnProperty
——不要删除任何自定义原型方法。非常感谢。。。谢谢:)有关如何使用TypeScript中的第一个选项,请参见请注意,如果您在函数中的参数上使用这两种方法,那么这两种方法在一个要点上有所不同。方法1也会在函数外部修改对象,方法2不会这样做。请确保使用
hasOwnProperty
--不希望删除任何自定义原型方法。感谢。。。谢谢:)有关如何使用TypeScript中的第一个选项,请参见请注意,如果您在函数中的参数上使用这两种方法,那么这两种方法在一个要点上有所不同。方法1也会在函数外部修改对象,方法2不会这样做。确保使用
hasOwnProperty
--不想删除任何自定义原型方法。确保使用
hasOwnProperty
--不想删除任何自定义原型方法。我不确定。。。但是它在所有浏览器中都受支持吗?@Aman,还没有,但是我希望有人能调查一下为什么
Map
被添加到这个规范中。我不确定。。。但是它在所有浏览器中都支持吗?@Aman,还没有,但我希望有人能调查一下为什么
Map
被添加到规范中