Javascript D3.js中的数组查找
如果您有一个类似Javascript D3.js中的数组查找,javascript,d3.js,Javascript,D3.js,如果您有一个类似 var out = [ {name:"John", car:"bmw", colour:"blue"}, {name:"Joe", car:"ford", colour:"red"}, {name:"Anna", car:"honda", colour:"green"}, {name:"Mary", car:"bmw", colour:"red"}, ]; 我怎样才能得到一个名字的car和/或color?可以认为名称是唯一的,数组不一定必须是数
var out = [
{name:"John", car:"bmw", colour:"blue"},
{name:"Joe", car:"ford", colour:"red"},
{name:"Anna", car:"honda", colour:"green"},
{name:"Mary", car:"bmw", colour:"red"},
];
我怎样才能得到一个名字的car
和/或color
?可以认为名称是唯一的,数组不一定必须是数组,即dict也可以
谢谢试试d3.map,它将返回数据数组中给定键的项目。其创建方式如下:
d3.map(array, function(d) { return d.key; });
然后,您可以通过以下方式访问地图中的项目:
map.get("value");
或者检查是否存在这样的值:
map.has("value");
有关更多信息,请参阅
以下是您的数据集示例:
var out=[
{名称:“约翰”,汽车:“宝马”,颜色:“蓝色”},
{名称:“乔”,汽车:“福特”,颜色:“红色”},
{名称:“安娜”,汽车:“本田”,颜色:“绿色”},
{名称:“玛丽”,汽车:“宝马”,颜色:“红色”},
];
var map=d3.map(out,函数(d){return d.name;});
//按键获取项目:
console.log(map.get(“John”).car);
控制台。日志(地图。获取(“安娜”)。颜色);
//检查项目是否存在:
console.log(map.has(“Joe”));
//创建新值并访问:
地图集(“拉尔夫”,{名字:“拉尔夫”,汽车:“宝马”,颜色:“红色”})
console.log(map.get(“Ralph”))代码>
您可以使用数组.prototype.find()
方法,该方法将返回整个对象,包括汽车
,颜色
,以及给定的名称
示例:
var out = [
{name:'John', car:'bmw', colour:'blue'},
{name:'Joe', car:'ford', colour:'red'},
{name:'Anna', car:'honda', colour:'green'},
{name:'Mary', car:'bmw', colour:'red'}
];
out.find(function(item) {
return item.name === 'John'
}
// will return the following:
{ name: 'John', car: 'bmw', colour: 'blue' }
您还可以使用ES6实现相同的功能:
out.find(item => item.name === 'John')
以下是的文档:
啊,是的!谢谢我把myDict=d3.nest().key(函数(d){return d.name}.entries(out)temp=myDict.filter(函数(myDict){return myDict.key=='Anna'})ans=temp[0].值[0].汽车控制台.log(ans)