标签: object

JavaScript对象:按名称访问变量属性为字符串

如果我有一个如下所示的javascript对象

var columns = {
  left: true,
  center : false,
  right : false
}
Run Code Online (Sandbox Code Playgroud)

我有一个传递对象的函数,以及一个像这样的属性名称

//should return false
var side = read_prop(columns, 'right');
Run Code Online (Sandbox Code Playgroud)

身体read_prop(object, property)会是什么样的?

javascript object

368
推荐指数
3
解决办法
38万
查看次数

如何从JavaScript对象中删除项目

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

如何从JavaScript对象中删除项?

像这样:

var test = {'red':'#FF0000', 'blue':'#0000FF'};
test.remove('blue');
Run Code Online (Sandbox Code Playgroud)

javascript object

366
推荐指数
1
解决办法
36万
查看次数

如何迭代JavaScript对象?

我在JavaScript中有一个对象:

{
    abc: '...',
    bca: '...',
    zzz: '...',
    xxx: '...',
    ccc: '...',
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我想使用for循环来获取其属性.我想在部分中迭代它(不是一次所有的对象属性).

使用简单的数组我可以使用标准for循环:

for (i = 0; i < 100; i++) { ... } // first part
for (i = 100; i < 300; i++) { ... } // second
for (i = 300; i < arr.length; i++) { ... } // last
Run Code Online (Sandbox Code Playgroud)

但是如何用物体做呢?

javascript iteration loops object javascript-objects

361
推荐指数
7
解决办法
40万
查看次数

使用{}或new Object()在JavaScript中创建一个空对象?

在JavaScript中创建空对象有两种不同的方法:

var objectA = {}
var objectB = new Object()
Run Code Online (Sandbox Code Playgroud)

脚本引擎如何处理它们有什么不同吗?有没有理由使用一个而不是另一个?

类似地,也可以使用不同的语法创建一个空数组:

var arrayA = []
var arrayB = new Array()
Run Code Online (Sandbox Code Playgroud)

javascript arrays object new-operator javascript-objects

359
推荐指数
7
解决办法
51万
查看次数

如何在PHP中定义一个空对象

使用新数组我这样做:

$aVal = array();

$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";
Run Code Online (Sandbox Code Playgroud)

对象是否有类似的语法

(object)$oVal = "";

$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";
Run Code Online (Sandbox Code Playgroud)

php object

357
推荐指数
12
解决办法
34万
查看次数

在JavaScript中删除对象

我对JavaScript的delete运算符有点困惑.采取以下代码:

var obj = {
    helloText: "Hello World!"
};

var foo = obj;

delete obj;
Run Code Online (Sandbox Code Playgroud)

在执行了这段代码之后,objnull,但foo仍然指的是一个完全相同的对象obj.我猜这个对象是foo指向的同一个对象.

这让我很困惑,因为我期望写作delete obj删除了obj指向内存的对象- 而不仅仅是变量obj.

这是因为JavaScript的垃圾回收工作在保留/释放的基础,所以,如果我没有指向对象的任何其他变量,它从内存中清除?

(顺便说一句,我的测试是在Safari 4中完成的.)

javascript garbage-collection pointers memory-management object

354
推荐指数
5
解决办法
36万
查看次数

使用*ngFor访问键和对象的值

我有点困惑如何获取keyvalue同时使用angular2对象的*ngFor用于遍历的对象.我知道在角度1.x中有一个类似的语法

ng-repeat="(key, value) in demo"
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在angular2中做同样的事情.我尝试过类似的东西,没有成功:

<ul>
  <li *ngFor='#key of demo'>{{key}}</li>
</ul>

demo = {
    'key1': [{'key11':'value11'}, {'key12':'value12'}],
    'key2': [{'key21':'value21'}, {'key22':'value22'}],
  }
Run Code Online (Sandbox Code Playgroud)

以下是我的尝试:http ://plnkr.co/edit/mIj619FncOpfdwrR0KeG?p=preview

我怎样才能获得key1key2动态使用*ngFor?经过广泛搜索后,我发现了使用管道的想法,但我不知道如何去做.是否有任何内置管道在angular2中做同样的事情?

object typescript angular

349
推荐指数
14
解决办法
34万
查看次数

将HTMLCollection转换为数组的最有效方法

有没有更有效的方法将HTMLCollection转换为数组,除了迭代所述集合的内容并手动将每个项目推入数组?

javascript arrays object

343
推荐指数
7
解决办法
19万
查看次数

JavaScript中的(for ... in)和(for ... of)语句有什么区别?

我知道什么是for... in循环(它迭代密钥),但第一次听到for... of(它迭代值).我对for... of循环感到困惑.我没有得到.这是下面的代码:

var arr = [3, 5, 7];
arr.foo = "hello";

for (var i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (var i of arr) {
   console.log(i); // logs "3", "5", "7"
    //it is does not log "3", "5", "7","hello"
}
Run Code Online (Sandbox Code Playgroud)

我得到的是,for... of迭代属性值.那么为什么它不记录(返回)"3", "5", "7","hello"而不是"3", "5", "7"?但for... in循环迭代每个键("0","1","2","foo").这里for... in循环也迭代foo密钥.但是对于...不是对foo财产价值的迭代,即"hello"为什么它是这样的?

简而言之:

在这里我控制台 …

javascript arrays object

337
推荐指数
15
解决办法
13万
查看次数

`throw new Error`和`throw someObject`有什么区别?

我想编写一个常见的错误处理程序,它将捕获在任何代码实例上故意抛出的自定义错误.

当我throw new Error('sample')在下面的代码中做了

try {
    throw new Error({'hehe':'haha'});
    // throw new Error('hehe');
} catch(e) {
    alert(e);
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

日志在Firefox中显示,Error: [object Object]我无法解析该对象.

对于第二个throw,日志显示为:Error: hehe

而当我这样做的时候

try {
    throw ({'hehe':'haha'});
} catch(e) {
    alert(e);
    console.log(e);
}
Run Code Online (Sandbox Code Playgroud)

控制台显示为:Object { hehe="haha"}其中我能够访问错误属性.

有什么不同?

是否在代码中看到了差异?像字符串一样只是作为字符串和对象传递给对象,但语法会有所不同吗?

我没有探索过抛出错误对象......我只是抛出了字符串.

还有除上述两种方法之外的其他方法吗?

javascript error-handling exception-handling object throw

336
推荐指数
10
解决办法
21万
查看次数