Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js中的数组查找_Javascript_D3.js - Fatal编程技术网

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)