You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel传递数组到Blade,JS用变量键访问对象返回undefined

解决动态键访问JS对象返回undefined的问题

第一步:排查拼接键与实际键的一致性

直接打印拼接后的string值,同时输出对象的所有键,对比两者是否完全匹配:

console.log('拼接出的键:', string);
console.log('对象的所有键:', Object.keys(array_));

大概率是拼接的键里藏了空格、大小写差异或者多余字符——比如array[i].name尾部带空格,拼接后变成jondoe _1,自然找不到对应值。

第二步:强制属性值转为字符串类型

如果array[i].number是数字或其他非字符串类型,拼接时可能出现意外格式(比如null会拼成jondoe_null),手动转成字符串避免问题:

string = String(array[i].name) + "_" + String(array[i].number);

第三步:确认JS对象的实际结构

打印完整的array_对象,确保预期的键(比如jondoe_1)确实存在,没有被json_encode意外转换格式:

console.log('完整对象:', array_);

第四步:排查特殊字符转义问题

如果PHP数组的键包含特殊字符,json_encode会自动转义,此时需要对比拼接键和对象键的JSON标准化形式:

console.log('拼接键的JSON形式:', JSON.stringify(string));
console.log('对象键的JSON形式:', Object.keys(array_).map(k => JSON.stringify(k)));

内容的提问来源于stack exchange,提问作者Schulz Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:35:18