相关疑难解决方法(0)

如何使用包含属性名称的变量检查对象属性是否存在?

我正在检查是否存在一个对象属性,其中包含一个保存有问题的属性名称的变量.

var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";

if(myObj.myProp){
    alert("yes, i have that property");
};
Run Code Online (Sandbox Code Playgroud)

这是undefined因为它正在寻找,myObj.myProp但我希望它来检查myObj.prop

javascript object

619
推荐指数
8
解决办法
60万
查看次数

为什么使用JavaScript eval函数是一个坏主意?

eval函数是一种动态生成代码的强大而简单的方法,那么有什么警告呢?

javascript security eval

522
推荐指数
14
解决办法
25万
查看次数

JavaScript属性访问:点符号与括号?

除了显而易见的事实,即第一种形式可以使用变量而不仅仅是字符串文字,是否有任何理由使用其中一种,如果是这样,在哪种情况下呢?

在代码中:

// Given:
var foo = {'bar': 'baz'};

// Then
var x = foo['bar'];

// vs. 
var x = foo.bar;
Run Code Online (Sandbox Code Playgroud)

上下文:我编写了一个生成这些表达式的代码生成器,我想知道哪个更好.

javascript syntax

380
推荐指数
10
解决办法
14万
查看次数

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中使用动态变量名称

在PHP中你可以做这样惊人/可怕的事情:

$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
Run Code Online (Sandbox Code Playgroud)

有没有办法用Javascript做这样的事情?

例如,如果我有一个var name = 'the name of the variable';可以获得名称变量的引用name

javascript dynamic-variables

320
推荐指数
10
解决办法
45万
查看次数

使用变量作为名称将属性添加到JavaScript对象?

我使用jQuery从DOM中提取项目,并希望使用idDOM元素在对象上设置属性.

const obj = {}

jQuery(itemsFromDom).each(function() {
  const element = jQuery(this)
  const name = element.attr('id')
  const value = element.attr('value')

  // Here is the problem
  obj.name = value
})
Run Code Online (Sandbox Code Playgroud)

如果itemsFromDom包含一个带有id"myId" 的元素,我想要obj一个名为"myId"的属性.以上给了我name.

如何使用JavaScript使用变量命名对象的属性?

javascript syntax jquery object

257
推荐指数
4
解决办法
30万
查看次数

为什么使用Object.prototype.hasOwnProperty.call(myObj,prop)而不是myObj.hasOwnProperty(prop)?

如果我理解正确,Javascript中的每个对象都继承自Object原型,这意味着Javascript中的每个对象都可以通过其原型链访问hasOwnProperty函数.

在阅读require.js的源代码时,我偶然发现了这个函数:

function hasProp(obj, prop) {
    return hasOwn.call(obj, prop);
}
Run Code Online (Sandbox Code Playgroud)

hasOwn是一个参考Object.prototype.hasOwnProperty.写这个函数是否有任何实际的区别

function hasProp(obj, prop) {
    return obj.hasOwnProperty(prop);
}
Run Code Online (Sandbox Code Playgroud)

既然我们在这,我们为什么要定义这个功能呢?这只是一个快捷方式和本地缓存属性访问(轻微)性能提升的问题,还是我错过了任何可能在没有此方法的对象上使用hasOwnProperty的情况?

javascript prototypal-inheritance hasownproperty requirejs

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

使用变量键访问JavaScript对象中的值

代码:

function updateDashboardData() {
    $.getJSON("includes/system/ajaxDataInterface.php", {recordcount:1}, function(data) {
        $('.stationContainer').each(function(data) {
            var bsID = $(this).attr("id");
            var bsStatus = $(this).children('.stationStatus');
            alert(data[bsID][0].time);
            bsStatus.find('.bs_maxHandsets').text(data[bsID][0].maxHandsets);
            bsStatus.find('.bs_time').text(data[bsID][0].time);
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

对象数据:

{
    "A5A50000": [{
        "bsid": "A5A50000",
        "chanCount": 17,
        "time": "2009-05-27 16:36:45",
        "avgInterference": 1.711765,
        "maxInterference": 4.97,
        "avgHandsets": 205.1176,
        "maxHandsets": 315,
        "avgCalls": 6.4118,
        "maxCalls": 13,
        "avgCBA": 3868.98059,
        "maxCBA": 7463,
        "sumSuccessCBA": 197318,
        "sumTimeoutHandoff": 133,
        "sumAttemptHandoff": 1028,
        "sumDeniedHandoff": 216,
        "sumConfirmHandoff": 679,
        "sumHandoffNetwork": 61873,
        "sumJoinNetwork": 96888,
        "sumLeaveNetwork": 93754,
        "sumRcvdKeepalive": 98773,
        "sumTimeoutKeepalive": 19748,
        "sumAttemptUplink": 93689,
        "sumBlockedUplink": 62453
    }]
}
Run Code Online (Sandbox Code Playgroud)

问题:

alert(data.A5A50000[0].time); 正确显示"2009-05-27 …

javascript language-design

48
推荐指数
1
解决办法
8万
查看次数

如何使用动态密钥访问对象?

如何使用变量作为键来访问对象.这是我的代码示例:

var o = {"k1": "111", "k2": "222"};
alert(o.k1); //working fine
var key = "k"+1; alert(key); // k1
alert(o.key); //not working
Run Code Online (Sandbox Code Playgroud)

javascript

42
推荐指数
2
解决办法
8万
查看次数

从数组创建对象

我想从数组列表中创建对象.我有一个动态的数组,假设看起来像这样:

var dynamicArray = ["2007", "2008", "2009", "2010"];

和一些javascript es6我想做一个像这样的对象:

const obj = {
    2007: {
        x: width / 5,
        y: height / 2
    },
    2008: {
        x: (2 / 5) * width,
        y: height / 2
    },
    2009: {
        x: (3 / 5) * width,
        y: height / 2
    },
    2010: {
        x: (4 / 5) * width,
        y: height / 2
    }
}
Run Code Online (Sandbox Code Playgroud)

不要担心内部对象,但只是想要这样的make结构:

 obj = {
      2007: ...,
      2008: ...,
      ...
    }
Run Code Online (Sandbox Code Playgroud)

请帮忙,谢谢.

javascript arrays javascript-objects ecmascript-6

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