MyValue = [name:"myValue", apple:3, banana:2];
ListValue = [
{name:"value1", apple:1, banana:2]},
{name:"value2", apple:3, banana:2]},
{name:"value2", apple:5, banana:1]},
{name:"value4", apple:3, banana:3]},
{name:"value5", apple:3, banana:5]}
]
你能帮我找到一个解决方案来排序 NewListValue 的条件是:如果 MyValue 的每个水果都小于或等于 ListValue 的每个数组的每个水果
我想要这样的结果:
NewListValue = [
{name:"value1", apple:1, banana:2]},
{name:"value2", apple:0, banana:1]}
]
非常感谢!
最佳答案
MyValue = { "name": "myValue", "apple": 3, "banana": 2 };
ListValue = [
{name:"value1", apple:1, banana:2},
{name:"value2", apple:3, banana:2},
{name:"value2", apple:5, banana:1},
{name:"value4", apple:3, banana:3},
{name:"value5", apple:3, banana:5}
];
var NewListValue = ListValue.filter(function(element){
if (MyValue.apple >= element.apple && MyValue.banana >= element.banana )
{
return element;
}
});
document.body.innerHTML += JSON.stringify(NewListValue ); //demo code
我会使用 Array.prototype.filter
这里。但是 for 循环也可以。
更正了此处的大量语法错误。将您的 MyValue
数组转换为对象而不是带键的数组(不起作用)。
修复了 ListValue
数组。
关于javascript - 比较数组并对具有条件的数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28944111/