【发布时间】:2016-07-01 11:09:51
【问题描述】:
我是 JavaScript 新手,我正在尝试尽可能多地学习,但我觉得我正在尝试做的事情已经碰壁了。
我的问题,我有一个对象数组,其中每个对象是一个 shop 对象,这是一个具有维修成本属性的“类型”维修对象。
如何按价格排序?到目前为止,请查看我的代码。我需要按价格顺序返回商店对象,因为我仍然需要商店的所有信息,但是根据所做的选择按照维修价格的顺序排列,所以基本上按照选择的顺序返回数组中的商店对象。我可能不知道,任何想法都将不胜感激。提前感谢您的宝贵时间。
var vendors = [
{
mosShop: {
samsung: {
screen: 50,
button: 10,
back: 20
},
iphone: {
screen: 10,
button: 18,
back: 1
}
}
}, {
davesShop: {
samsung: {
screen: 40,
button: 5,
back: 12
},
iphone: {
screen: 18,
button: 148,
back: 11
}
}
}
];
var arr = [];
//;
$('#phone,#repair').change(function() {
var selectedPhone = $('#phone :selected').text().toString();
var selectRepair = $('#repair :selected').text().toString();
for (var i = 0; i < vendors.length; i++) {
var mo = Object.keys(vendors[i]);
var t = mo.toString()
var price = vendors[i][t][selectedPhone][selectRepair];
alert(price)
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<select id="phone">
<option value="samsung">samsung</option>
<option value="iphone">iphone</option>
<option value="mercedes">blah</option>
<option value="audi">blah</option>
</select>
<select id="repair">
<option value="screen">screen</option>
<option value="button">button</option>
<option value="back">back</option>
<option value="audi">blah</option>
</select>
<div id="endresults">
</div>
`
【问题讨论】:
-
请添加结果数组的外观。
-
你搜索了吗?
[javascript] sort array objects nested property--- 其中之一一定有帮助。 -
因为它在我的代码中,但按照选择的修复顺序 - 成本最低,所以如果 davesShop 较低,那么它应该首先出现在排序的对象数组中。
标签: javascript jquery arrays sorting object