У меня есть массив объектов, называемых specials
, с каждым объектом, глядя, как это:Объект толкнул в массив, вложенный в другой массив
{
apr_rate:"",
client_id:"",
disclaimer:",
lease_payment: "",
make:"",
model:"",
name:"",
platform:"",
price:"",
specialOrder:"",
specialStyle: "",
trim:"",
visible:"",
website:"",
year:"",
}
У меня есть цикл, проходящий через каждый объект в массиве и проверки, чтобы увидеть если свойство lease_payment
пусто. В том случае, если это так, я объединять этот конкретный объект из массива, сохранить его в новом объекте с именем tempObj
, а затем вставить его в новый массив с именем tempArray
. Причина, по которой я сращиваю, заключается в том, что мне нужно сначала заказать этот массив объектов на lease_payment
в порядке возрастания - при отсутствии арендного платежа ему необходимо упорядочить оставшиеся объекты на price
в порядке возрастания. Однако заказ после заказ аренды. Смотрите ниже:
if (specials[i].lease_payment == "") {
tempObj = specials.splice(i, 1);
tempArray.push(tempObj);
} else {
// else just assume they're all lease offers and sort by lease payment
specials.sort(function(a, b) {
return a.lease_payment - b.lease_payment
});
}
я тогда проверить, чтобы убедиться, что новый массив tempArray
имеет 1 объект, или несколько. Если есть только 1, я сразу же возвращаю его обратно в основной массив specials
, где он будет в задней части; нет другого объекта, чтобы сравнить его и заказать. Если есть несколько объектов, я меняю порядок этих объектов на основе возрастающей цены, а затем нажимаю их отдельно в массив specials
, так как их нужно рассматривать как собственные объекты. Смотри ниже.
if (tempArray.length == 1) {
specials.push({tempArray});
} // else just sort the temp array by ascending price, push into main specials later
else if (tempArray.length > 1) {
tempArray.sort(function(a, b) {
return a.price - b.price
});
// grabs each individual object within temp array and pushes one at a time into main specials
for (i = 0; i < tempArray.length; i++) {
specials.push(tempArray[i]);
}
}
Что происходит в том, что в любом случае, всякий раз, когда я нажимаю объект обратно в specials
массив, причем вложенный в другой массив, как показано на скриншоте:
В этом случае, два из 5 специальных объектов были вывезены, отсортированы и помещены обратно. Однако они теперь вложены внутри массива.
Я что-то пропущу или что-то не так? Любая помощь будет оценена по достоинству.
на первый, своего рода, если для целей цикла (тот лучше производительность) –
вы могли бы добавить некоторые данные и разыскиваемого результат сортировки в компактном виде. –
- это 'lease_payment' пустая строка и число как строка или просто строка с несколькими буквами? добавьте свои данные с примерами. –