我有對象的像返回JSON對象
objArray = [{"color":"red", "width":5, "price":10},
{"color":"green", "width":4, "price":8},
{"color":"red", "width":7, "price":11}]
陣列如何可以返回對象的陣列,其中所述顏色爲紅色以JavaScript或jquery的
我有對象的像返回JSON對象
objArray = [{"color":"red", "width":5, "price":10},
{"color":"green", "width":4, "price":8},
{"color":"red", "width":7, "price":11}]
陣列如何可以返回對象的陣列,其中所述顏色爲紅色以JavaScript或jquery的
var objArray = [{"color":"red", "width":5, "price":10},
{"color":"green", "width":4, "price":8},
{"color":"red", "width":7, "price":11}]
var tmp = []
$.each(objArray,function(i,val){
if(val.color == 'red')
{
tmp.push(objArray[i]);
}
});
console.log(tmp);
如果「返回」,你的意思是從一個函數返回,那麼你可以使用Array.prototype.filter
這樣的:
return objArray.filter(function(v) { return v.color === 'red'; });
如果你只是想將它保存到一個變量,那麼它只是大致相同:
var red_array = objArray.filter(function(v) { return v.color === 'red'; });
爲了彌補舊的瀏覽器,使用the MDN .filter()
shim:
if (!Array.prototype.filter) {
Array.prototype.filter = function (fun /*, thisp */) {
"use strict";
if (this === void 0 || this === null) throw new TypeError();
var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== "function") throw new TypeError();
var res = [];
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in t) {
var val = t[i]; // in case fun mutates this
if (fun.call(thisp, val, i, t)) res.push(val);
}
}
return res;
};
}
或者,如果你想要的jQuery ,請使用$.map()
[docs]方法:
var arr = $.map(objArray, function(v) { if(v.color === 'red') return v; });
或$.grep()
[docs]方法:
var arr = $.grep(objArray, function(v) { return v.color === 'red'; });
實例:http://jsbin.com/udawir/edit#javascript,live(改變傳遞給$.each()
陣列來記錄得到的顏色值)在陣列上
迭代並且這些對象添加到新的數組,其中'color'是' 「紅」'。或者是什麼問題? https://developer.mozilla.org/en/JavaScript/Guide/Statements#Loop_Statements(btw。這不是一個JSON對象,它只是一個對象數組)。 –
我說在我的描述中的對象數組... – dardub
那麼你的問題是什麼關於JSON? –