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

时间:2017-07-13 14:18:14

标签: 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>

虽然这项工作在select中显示每个单独的字符串具有正确的值,但它失败并且对象为{u'boo': [u'var1', u'var2', u'var3', u'var4']}。它目前显示为一个简单的字符串。这是合理的,系统没有考虑到这一点,所以我有以下问题:

如何使系统显示对象的键(例如example2),并显示一个新选项,其中包含属于此键的所有新选项?

因此,如果用户选择了嘘声,则会显示一个显示var1var2var3var4的新选择。

1 个答案:

答案 0 :(得分:0)

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

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);
      }
    }
  }
}

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