Javascript 在JS/PHP Ajax请求生成的数组中传递0时出现问题

Javascript 在JS/PHP Ajax请求生成的数组中传递0时出现问题,javascript,php,Javascript,Php,我有一个用JQuery编写的脚本,可以对PHP函数进行AJAX调用。该函数根据发送给它的数据返回一个数据数组 在前端,我有一个单选按钮,上面有数据属性,确定要获取数组的哪个索引,然后输出到屏幕 问题是它不会使用0作为获取的数字。通过使用空值启动数组并将要获取的数量增加1,一切都会正常工作 我的问题是,为什么Javascript不解析0来获取正确的数据。我的理论是is与0与false相同有关,但是,我希望1与false相似并返回true 我尝试在获取数据时使用parseInt(0,10)。我也试过

我有一个用JQuery编写的脚本,可以对PHP函数进行AJAX调用。该函数根据发送给它的数据返回一个数据数组

在前端,我有一个单选按钮,上面有数据属性,确定要获取数组的哪个索引,然后输出到屏幕

问题是它不会使用
0
作为获取的数字。通过使用空值启动数组并将要获取的数量增加1,一切都会正常工作

我的问题是,为什么Javascript不解析
0
来获取正确的数据。我的理论是is与
0
与false相同有关,但是,我希望1与false相似并返回true

我尝试在获取数据时使用
parseInt(0,10)
。我也试过使用
!isNan(parseInt(0,10))
尝试对假值求反

下面是我使用的基本版本。我省略了AJAX调用,因为它工作正常,我认为这不是问题所在

html

示例数组

{
    [0] => "Description one"
    [1] => "Description two"
    [2] => "Description three"
}
预期结果如下: -单击单选按钮时,会将p标记的文本设置为数组中的相应文本。 -因此,如果您选择输入2,您将得到“描述2”等


它获取正确的数据,但忽略第一个值,即数组中的
[0]
。因此,单击单选按钮1返回未定义,但单击单选按钮2,您会得到“描述二”。

0是一个假y值,因此,如果($(evt.currentTarget)。data('Description-id')),如果当前目标是第一个数据描述id为=“0”的单选按钮,则此处的条件
if($(evt.currentTarget)。data('Description-id'))
将不为真.小注释<代码>var evt=事件?为什么?购买了比您需要的更多的内存,并且您正在努力确保尽可能多地使用内存?拜托,@RiggsFolly-
evt
event
@WillardSolutions更容易键入,那么为什么不执行
函数(evt)
?或者
function(e)
这是一个笑话@riggsfully0是一个假y值,因此这里的条件
if($(evt.currentTarget).data('description-id'))
如果当前目标是数据描述id=“0”的第一个单选按钮,那么它就不是真的?为什么?购买了比您需要的更多的内存,并且您正在努力确保尽可能多地使用内存?拜托,@RiggsFolly-
evt
event
@WillardSolutions更容易键入,那么为什么不执行
函数(evt)
?或者
函数(e)
这是一个笑话@RiggsFolly
$(document).on('change', 'input[type=radio]', function(event) {
    var evt = event;
    if($(evt.currentTarget).data('description-id')) {
        var $_correctDescriptionID = parseInt($(evt.target).data('description-id'), 10),
        $_injuryDescriptionContainer = $('.icc__injury-description span');
        $_injuryDescriptionContainer.text($_injuryDescriptions[$_correctDescriptionID]);
    }

    console.log($_correctCompensationAmount);
    console.log($_correctDescriptionID);

});
{
    [0] => "Description one"
    [1] => "Description two"
    [2] => "Description three"
}