问题 在javascript或jquery [duplicate]中有PHP array_key_exists的等价物吗?


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

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

我有PHP

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

现在我想在jQuery中这样做。有没有内置功能来做到这一点?


2777
2017-08-02 10:59


起源

stackoverflow.com/questions/1098040/... 似乎给你几个选择 - JoshuaWohle
请参考这篇文章。 stackoverflow.com/questions/1098040/... - Vins
这个问题也是关于数值数组的,所以,不是JSON对象。 - Peter Krauss


答案:


请注意,对象(具有命名属性)和关联数组在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)

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


7
2017-08-02 11:01



问题还在于传统阵列,它适用于Array()吗? - Peter Krauss


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

对于转向js的PHP程序员来说,这是一个很棒的站点。


2
2017-08-02 11:01





在Javascript ....

if(nameofarray['preferenceIDTmp'] != undefined) {
    // It exists
} else {
    // Does not exist
}

1
2017-08-02 11:03



你想用===或!==来检查undefined,否则你会得到null和false的误报。 - Sam Peacey