首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用javascript或jquery获取对象值和id作为选择框的选项

如何使用javascript或jquery获取对象值和id作为选择框的选项
EN

Stack Overflow用户
提问于 2017-10-14 18:26:40
回答 4查看 38关注 0票数 1

我有一个这样的对象:

代码语言:javascript
运行
复制
var quantites = {
   4: {
        93: {
            "id": "355",
            "qty": 8
        }
    },
   5: {
        93: {
            "id": "356",
            "qty": 10
       }
    },
 };

在不使用/知道要循环的键的情况下,如何在select中获取id作为值和qty作为标签:

代码语言:javascript
运行
复制
<option value="335">8</option>
<option value="336">10</option>

添加到div:

代码语言:javascript
运行
复制
<div id="qty">
    <select></select>
</div>

到目前为止,我尝试的是:

代码语言:javascript
运行
复制
            $.each(quantites, function(key, value) {
            $('#qty')
                .append($("<option></option>")
                .attr("value",key)
                .text(value)); 
            });
        });
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-10-14 18:38:53

您可以首先将数据转换为对象数组,然后使用forEach循环将其添加到select

代码语言:javascript
运行
复制
var quantites = {"4":{"93":{"id":"355","qty":8}},"5":{"93":{"id":"356","qty":10}}}

var select = $('#qty select')
var data = [].concat(...Object.values(quantites).map(Object.values))
data.forEach(function(e) {
  select.append(`<option value="${e.id}">${e.qty}</option>`)
})
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="qty">
    <select></select>
</div>

票数 3
EN

Stack Overflow用户

发布于 2017-10-14 18:35:55

如果包含id和qty的对象始终位于第三级,并且没有其他对象,则可以将当前对象转换为具有id和qty的对象数组:

代码语言:javascript
运行
复制
var quantites = {
   4: {
        93: {
            "id": "355",
            "qty": 8
        }
    },
   5: {
        93: {
            "id": "356",
            "qty": 10
       }
    },
 };

var arrayOfQuantities = 
Object.keys(quantites)
.map(
  key => 
    Object.keys(quantites[key])
    .map(subKey => quantites[key][subKey])
)
.reduce((acc,item) => acc.concat(item),[])

首先解决如何获得这样一个不可用的对象并解决这个问题可能会更好。

票数 1
EN

Stack Overflow用户

发布于 2017-10-14 18:37:52

你看过这篇文章吗?

https://codereview.stackexchange.com/questions/114672/reducing-a-large-array-of-objects-to-a-simple-object-with-8-properties

您可以将较大的对象缩小到您需要的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46743452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档