26

可能重复:
检查 Javascript 中是否存在关联数组键

我有一个 PHP 代码块。出于某种目的,我将其转换为 JavaScript 块。

我有 PHP

if(array_key_exists($val['preferenceIDTmp'], $selected_pref_array[1]))

现在我想在 jQuery 中做到这一点。是否有任何内置功能可以做到这一点?

4

3 回答 3

15

请注意,对象(具有命名属性)和关联数组在 javascript 中是相同的。

您可以使用hasOwnProperty检查对象是否包含给定属性:

o = new Object();  
o.prop = 'exists'; // or o['prop'] = 'exists', this is equivalent 

function changeO() {  
  o.newprop = o.prop;  
  delete o.prop;  
}  

o.hasOwnProperty('prop');   //returns true  
changeO();  
o.hasOwnProperty('prop');   //returns false  

或者,您可以使用:

if (prop in object)

细微的区别在于后者检查原型链。

于 2012-08-02T11:01:45.897 回答
6

在 Javascript 中......

if(nameofarray['preferenceIDTmp'] != undefined) {
    // It exists
} else {
    // Does not exist
}
于 2012-08-02T11:03:23.843 回答
2

http://phpjs.org/functions/array_key_exists:323

对于迁移到 js 的 PHP 程序员来说,这是一个很棒的网站。

于 2012-08-02T11:01:33.697 回答