Javascript 如何将json数组元素(带有嵌套对象)动态显示到select标记中?

Javascript 如何将json数组元素(带有嵌套对象)动态显示到select标记中?,javascript,html,arrays,json,Javascript,Html,Arrays,Json,我有一个python给出的数组: [{u'boo': [u'var1', u'var2', u'var3', u'var4']}, u'Happines', u'May', u'Abecedary' 阵列当前以以下方式自动填充 <select> %for type in array: <option value="{{type}}">{{type}}</option> %end </select> %对于数组中的类型:

我有一个python给出的数组:

[{u'boo': [u'var1', u'var2', u'var3', u'var4']}, u'Happines', u'May', u'Abecedary'
阵列当前以以下方式自动填充

<select>
   %for type in array:
      <option value="{{type}}">{{type}}</option>
   %end
</select>

%对于数组中的类型:
{{type}}
%结束
虽然这项工作在select中用正确的值显示每个字符串,但由于对象
{u'boo':[u'var1',u'var2',u'var3',u'var4']}
而失败。它当前显示为一个简单的字符串。这是合理的,系统没有考虑到这一点,因此我有以下问题:

如何使系统显示对象的关键点(比如示例2),并显示一个新的选择,其中包含属于该关键点的所有新选项


因此,如果用户选择boo,将出现一个新的选择,显示
var1
var2
var3
、和
var4

您可以使用以下方法检查数组中元素的数据类型,例如:

let arr = [{u'boo': [u'var1', u'var2', u'var3', u'var4']}, u'Happines', u'May', u'Abecedary'];

for(let i = 0; i < arr; i++) {
  // Checking if an element in arr is an object.
  if(typeof arr[i] === 'object') {
    let obj = arr[i];
    // Iterating the object using for-in loop.
    for(let prop in obj) {
      if (obj.hasOwnProperty(elem)) {
        // Do your object manipulation in here.
        console.log(obj.prop);
      }
    }
  }
}
let arr=[{u'boo':[u'var1',u'var2',u'var3',u'var4']},u'Happines',u'May',u'Abecedary'];
for(设i=0;i

这样,您可以始终确保将对象考虑在内。您可以对希望从python接收的其他数据类型执行相同的操作。

超级聪明的是,您有两个相同键的字典。虽然我发现这个答案一定是正确的,但恐怕我在ES6中遇到了一个问题,要将它解析为5,我应该简单地将let改为var,对吗?@Javierbulrich correct,对于您的项目,我强烈建议您转向ES6,并使用babelify等工具在编译时将ES6转换为ES5。此外,如果我的答案正确,请单击ckeckmark接受,和/或如果有帮助,请按向上按钮将其标记为正确。这是让其他人知道你找到了你需要的答案,他们可以在自己的项目中引用。