相关疑难解决方法(0)

ECMAScript 6类析构函数

我知道ECMAScript 6有构造函数,但ECMAScript 6的析构函数是否存在?

例如,如果我将一些对象的方法注册为构造函数中的事件侦听器,我想在删除对象时删除它们.

一种解决方案是desctructor为每个需要此类行为的类创建方法并手动调用它.这将删除对事件处理程序的引用,因此我的对象将真正准备好进行垃圾回收.否则它会因为那些方法而留在记忆中.

但是我希望ECMAScript 6能够在对象被垃圾收集之前调用本机.

如果没有这样的机制,这种问题的模式/惯例是什么?

javascript ecmascript-6

52
推荐指数
5
解决办法
7万
查看次数

如何使用JavaScript切换数组中的元素?

这是我为这个简单任务的javascript代码:

  1. 如果元素存在于数组中,请将其删除.
  2. 如果元素不在数组中,请添加元素.

    if(_.contains(this.types,type_id)){
        var index = this.types.indexOf(type_id);
        this.types.splice(index,1);
    }
    else{
        this.types.push(type_id);
    }
    
    Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来做到这一点?

javascript arrays toggle underscore.js

32
推荐指数
5
解决办法
2万
查看次数

当'var array = {}'时,如何解决"TypeError:array.splice不是函数"?

可能重复:
如何从javascript对象中删除属性
JavaScript Hashmap等效

我正在使用jQuery,我正在以这种方式处理变量:

var array = {};

array[an_object]      = something
array[another_object] = something_else
array[...]            = ...
Run Code Online (Sandbox Code Playgroud)

当我尝试运行该splice方法时,array我得到一个TypeError: array.splice is not a function.我的意图是an_objectarray变量中删除"密钥"及其所有内容.

我该怎么做?


注意:当我运行console.log(array[an_object])(同样有效another_object和所有其他对象)时,我得到:

[Object { label="str1",  value=1 }, Object { label="str2",  value=2 }, { label="strN",  value=N }]
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

25
推荐指数
2
解决办法
6万
查看次数

如何删除json对象键和值.

我有一个json对象,如下所示.我想删除"otherIndustry"条目及其值,使用下面的代码不起作用.

var updatedjsonobj = delete myjsonobj['otherIndustry'];
Run Code Online (Sandbox Code Playgroud)

如何删除Json对象特定的键及其值.下面是我的示例json对象,我想删除"otherIndustry"键及其值.

var myjsonobj =  {
      "employeeid": "160915848",
      "firstName": "tet",
      "lastName": "test",
      "email": "test@email.com",
      "country": "Brasil",
      "currentIndustry": "aaaaaaaaaaaaa",
      "otherIndustry": "aaaaaaaaaaaaa",
      "currentOrganization": "test",
      "salary": "1234567"
    };
delete myjsonobj ['otherIndustry'];
console.log(myjsonobj);
Run Code Online (Sandbox Code Playgroud)

日志仍然打印相同的对象而不从对象中删除"otherIndustry"条目.

javascript jquery json object

21
推荐指数
3
解决办法
5万
查看次数

有没有办法从js对象中删除整个属性

我认为这是一个奇怪的问题,但我不得不问......

如果我有一个看起来像这样的js对象:

$scope.obj1 = {
    "name":"John",
    "number":"Eleven",
    "color":"Red"
}
Run Code Online (Sandbox Code Playgroud)

有没有办法删除整个财产?没有重新赋值给新对象 ..所以如果我想摆脱"number":"Eleven",我希望对象看起来像这样......

$scope.obj1 = {
    "name":"John",
    "color":"Red"
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript angularjs

19
推荐指数
1
解决办法
315
查看次数

这个数组叫做什么...以及如何从中删除项目

我有一个我正在使用的数组,我很难描述它是什么类型的数组,这使我很难使用它.到目前为止它对我有用.我只是好奇.

我最终想要删除这个数组的结尾.

我试着.pop().grep().它不起作用.

这是我的代码示例.

var options = {};
$('.option:visible').each(function(){
     var option_label = "";
     var option_selected = [];
     var option_img = "";

     ...


     options[option_label] = {
         option_selected: option_selected,
         option_image : option_img
     };
});
Run Code Online (Sandbox Code Playgroud)

我想要做的是:

if(option_label.indexOf("something") != -1) {
   //then pop off options
} 
//continue about your business
Run Code Online (Sandbox Code Playgroud)

为了澄清,我不知道确切的标题option_label.

javascript arrays javascript-objects

19
推荐指数
1
解决办法
432
查看次数

从数组中的对象,Javascript中删除键值

我有一个看起来像这样的数组:

$scope.quotes =
    [
        {
            'quote': 'foo',
            'author': 'bar',
            'source': 'foobar',
            'first': 'slideout',
        },
        {
            ...
        },
    ]
Run Code Online (Sandbox Code Playgroud)

我试图首先删除键值:从数组中滑出.像这样:

delete $scope.quotes[0][first];
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

delete $scope.quotes[0].first;
Run Code Online (Sandbox Code Playgroud)

javascript object

18
推荐指数
0
解决办法
1万
查看次数

如何将对象转换为另一种类型并删除 TypeScript 中不需要的字段?

假设我有以下代码:

interface A {
    a: number;
}

interface B extends A {
    b: number;
}

const b: B = {a: 1, b: 5};
const a: A = b as A;
Run Code Online (Sandbox Code Playgroud)

现在变量a有 type A,但它仍然包含b在其中。有时这是不可取的 - 我想确定,如果我有一个 type 变量A,它具有type的确切字段A。我想知道,TypeScript 是否有某种“硬转换”可以在类型之间转换时删除任何不需要的字段。

typescript

18
推荐指数
1
解决办法
9222
查看次数

如何从 Typescript 中的对象中删除属性,而没有“删除”运算符的操作数必须是可选错误?

我尝试在此处阅读如何从对象中删除属性:How do I remove a property from a JavaScript object?

它应该使用delete,我尝试这样

const eventData = {...myEvent}; // myEvent is an instance of my `Event` class
delete eventData.coordinate; // I have error in here
Run Code Online (Sandbox Code Playgroud)

但我有这样的错误

在此输入图像描述

“删除”运算符的操作数必须是可选的。ts(2790)

然后我读到:Typescript 无法推断删除运算符和扩展运算符?

似乎可以通过使用更改我的 tsconfig.json 文件来消除该错误

{
  "compilerOptions": {
    ...
     "strictNullChecks": false, 
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

但如果我实现这个,我将不再进行空检查

那么如何从 Typescript 中的对象中删除属性而不使用“删除”运算符的操作数必须是可选错误?

typescript

15
推荐指数
1
解决办法
2万
查看次数

在Javascript中删除属性

我有以下对象

b.push({ data: d, width: 5, color: color });
Run Code Online (Sandbox Code Playgroud)

然后我有

b= [{data:10,width:5, color:"yellow"},{data:12,width:5, color:"red"},etc...];
Run Code Online (Sandbox Code Playgroud)

我添加了color属性,现在我不需要,我想删除它.我想知道最简单的方法是什么?

javascript

14
推荐指数
1
解决办法
7165
查看次数