多次元配列の位置取得?

多次元配列の位置取得
http://oshiete.goo.ne.jp/qa/8581039.html

あ〜締め切られたのね

&#65279;<!DOCTYPE html>
<title></title>
<meta charset="utf-8">
<body>

<script>
var test = [
  {"name":"yamada","age":30,"weight":62,"blood":"a"},
  {"name":"tanaka","age":28,"weight":58,"blood":"b"},
  {"name":"kamimura","age":46,"weight":65,"blood":"o"},
  {"name":"takahashi","age":21,"weight":70,"blood":"ab"},
  {"name":"kamimura","age":46,"weight":65,"blood":"o"},
  {"name":"takahashi","age":21,"weight":70,"blood":"ab"}
];

var checker = function (prop, val) {
  return function (obj) {
    return (prop in obj)
    ? (obj[prop] === val)
    : false;
  };
};

var checker2 = function (prop, val) {
  return function (rst, obj, idx) {
    return (prop in obj)
    ? (obj[prop] === val)
      ? rst.concat (idx)
      : rst
    : rst;
  };
};


var blood_ab = test.filter (checker ('blood', 'ab'));
alert (blood_ab.length);//-> 2

var blood_ab = test.reduce (checker2 ('blood', 'ab'), []);
alert (blood_ab);//-> 3,5
</script>