javascript - Json数组错误无法设置未定义的属性 'model'

标签 javascript jquery arrays json

var temp = [{}]
var as = ['a', 'b']
for (i = 0; i < as.length; i++) {
    temp[i].model = as[i]
}

我收到以下错误:

Cannot set property 'model' of undefined

最佳答案

好的,这应该可以帮助你:

var temp = [];
var as = ['a', 'b'];
for (i = 0; i < as.length; i++) {
    temp[i] = temp[i] || {};
    temp[i].model = as[i];
}

因为 as 可能比 temp 长,所以需要确保 temp[i] 存在,这正是 温度[i] = 温度[i] || {}; 的作用是:

  • 如果 temp[i] 存在,则不会执行任何操作。
  • 如果 temp[i] 不存在,则会将一个新的空对象 ({}) 分配给 temp[i]

请注意,我从 temp = [{}] --> temp = [] 中删除了 {}。现在您不需要那里的第一个空对象。

<小时/>

如果您绝对确定 temp 在循环之前永远不会包含任何值,您可以这样做:

for (i = 0; i < as.length; i++) {
    temp[i] = { model: as[i] };
}

或者:

temp = as.map(function(item){ return { model: item }});

关于javascript - Json数组错误无法设置未定义的属性 'model',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266093/

相关文章:

javascript - 比较和匹配两个对象列表时防止结果列表重复

javascript - drupal_add_js() 正在工作,但 js 文件未执行

jquery - 带有弹出窗口的 jQuery 垂直 slider 中的溢出隐藏问题

javascript - 创建对话框时未捕获 TypeError : $(. ..).dialog 不是函数错误

c - 从函数初始化 C 中的全局二维数组

javascript - 将对象数组中的元素附加到内部对象数组

javascript - Vue.js 和 Axios - 在 401 上重定向

javascript - Spotify 元数据 API + libspotify

javascript - Firefox 与 Chrome 中的 window.find()

java - 如何制作一个包含另一个数组的随机元素对的二维数组?