我正在尝试创建一个函数,以便在定义属性时从对象数组中获取特定对象。通过从下拉列表中选择值来定义属性。我用来定义值的函数是一个循环,我从这个答案得到了:Get JavaScript object from array of objects by value or property
在console.log中,我可以看到我传递给函数定义的两个参数。但是该功能无效。这是为什么?
我的代码:https://plnkr.co/edit/rnUbLXa4W0FC4fjuCzB5?p=preview
代码也在下面:
<!doctype html>
<html>
<head>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<div id="#yvalue"></div>
<br/><br/>
<select class="inds">
<option value="">- Select -</option>
<option value="27706">A</option>
<option value="97306">B</option>
<option value="44706">C</option>
<option value="30006">D</option>
</select>
<script>
var section;
var yax;
function getByValue(arr, value) {
for (var i=0, iLen=arr.length; i<iLen; i++) {
if (arr[i].b == value) return arr[i];
}
};
d3.csv("yaxis.csv", function(yvals){
yax = yvals;
$('.inds')
.on("change", function () {
section = $(this).val();
section = +section;
currentyval = getByValue(yax, section);
console.log("yax: ", yax);
console.log("section: ", section);
console.log("currentyval:", currentyval);
});
});
</script>
</body>
</html>
yaxis.csv:
id,axisen,axissp,axisfr
38506,%,%,%
38606,%,%,%
38906,%,%,%
44706,%,%,%
45106,%,%,%
73506,%,%,%
101006,%,%,%
101606,%,%,%
101706,%,%,%
101806,%,%,%
142506,%,%,%
146106,%,%,%
146306,%,%,%
48706,% ages 15 and older,% de 15 años de edad y mayores,% 15 ans et plus
48806,% ages 15 and older,% de 15 años de edad y mayores,% 15 ans et plus
101406,% ages 15 and older,% de 15 años o más,% 15 ans et plus
148206,% ages 15 and older,% de 15 años o más,% 15 ans et plus
148306,% ages 15 and older,% de 15 años o más,% 15 ans ou plus
147906,% ages 15-24,% jóvenes entre 15 y 24,% de 15-24 ans
58006,% ages 15-49,entre 15-49 años,% 15-49 ans
23806,% ages 25 and older,% de 25 años de edad y mayores,% des 25 ans et plus
23906,% ages 25 and older,% de 25 años y mayores,% des 25 ans et plus
24006,% ages 25 and older,% de 25 años y mayores,% des 25 ans et plus
112206,% ages 5-14,% de niños y niñas de entre 5 y 14 años,% 5-14 ans
31706,% held by women,% ocupados por mujeres,% de femmes
52606,% of GDP,% del PIB,% du PIB
53506,% of GDP,% del PIB,% du PIB
53906,% of GDP,% del PIB,% du PIB
65606,% of GDP,% del PIB,% du PIB
111306,% of GDP,% del PIB,% du PIB
127606,% of GDP,% del PIB,% du PIB
133206,% of GDP,% del PIB,% du PIB
149206,% of GDP,% del PIB,% du PIB
97306,% of GNI,% del INB,% du RNB
99106,% of GNI,% del INB,% du RNB
127706,% of GNI,% del INB,% du RNB
135606,% of labour force,% de la fuerza de trabajo,% de la population active
140606,% of labour force,% de la fuerza de trabajo,% de la population active
110906,% of labour force ages 15-24,% entre 15 y 24 años,% de la population active âgée de 15 à 24 ans
64306,% of one-year-olds,% de niños y niñas de 1 año de edad,% âgés de 1 an
64406,% of one-year-olds,% de niños y niñas de 1 año de edad,% âgés de 1 an
43606,% of population,% de la población,% de la population
133006,% of preschool-age children,% de niños en edad pre-escolar,% d'enfants en âge préscolaire
46106,% of primary school cohort,% de la cohorte en la escuela primaria,% de la cohorte d'enfants en âge de fréquenter l'école primaire
63206,% of primary school-age population,% de la población en edad de asistir a la escuela primaria,% de la population en âge de fréquenter l'école primaire
144806,% of rural population,% de la población rural,% de la population rurale
63306,% of secondary school-age population,% de la población en edad de asistir a la escuela secundaria,% de la population en âge de fréquenter l'école secondaire
123806,% of statutory pension age population,% de la población en edad legal de jubilación,% de la population en âge légal de départ à la retraite
63406,% of tertiary school-age population,% de la población en edad de asistir a la escuela terciaria,% de la population en âge de fréquenter l'enseignement supérieur
30006,% of total,% del total,% du total
43006,% of total employment,% del empleo total,% de l'emploi total
148006,% of total employment,% de empleo total,% de l'emploi total
148106,% of total employment,% de empleo total,% de l'emploi total
150606,% of total employment,% del empleo total,% de l'emploi total
150706,% of total employment,% del empleo total,% de l'emploi total
153706,% of total employment,% del empleo total,% des emplois
100806,% of total land area,% de superficie terrestre,% de la surface des sols
97106,% of total renewable water resources,% del total de recursos hídricos renovables,% du total des sources renouvelables d'eau
147206,% of total tertiary enrolment,% de la matriculación total en educación terciaria,% des inscriptions totales dans l'enseignement supérieur
127906,% under age 5,de menores de 5 años,% moins de 5 ans
115606,2010=100,2010=100,2010=100
136706,2011 PPP $,PPA en US$ de 2011,$ PPA 2011
143306,2011 PPP $ billions,PPA en miles de millones de US$ de 2011,milliards de $ PPA 2011
123506,2011 PPP$,PPA en US$ de 2011,$ PPA 2011
123606,2011 PPP$,PPA en US$ de 2011,$ PPA 2011
141706,2011 PPP$,$ de PPA en 2011,$ PPA 2011
145306,average annual per million people,promedio anual por cada millón de personas),moyenne par an pour un million de personnes
149406,average annual per million people,promedio anual por cada millón de personas,moyenne annuelle pour un million de personnes
36806,"births per 1,000 women ages 15-19",nacimientos por cada 1.000 mujeres de entre 15 y 19 años,naissances pour 1 000 femmes âgées de 15 à 19 ans
128106,days,días,jours
89006,"deaths per 100,000 live births",muertes por cada 100.000 nacidos vivos,décès pour 100 000 naissances vivantes
38406,index value,valor del índice,valeur de l'indice
68606,index value,valor del índice,valeur de l'indice
71406,index value,valor del índice,valeur de l'indice
71506,index value,valor del índice,valeur de l'indice
71606,index value,valor del índice,valeur de l'indice
72206,index value,valor del índice,valeur de l'indice
103606,index value,valor del índice,valor del índice
103706,index value,valor del índice,valor del índice
127806,index value,valor del índice,valor del índice
136806,index value,valor del índice,valor del índice
136906,index value,valor del índice,valor del índice
137006,index value,valor del índice,valor del índice
137506,index value,valor del índice,valor del índice
137906,index value,valor del índice,valor del índice
138806,index value,valor del índice,valor del índice
49006,male to female births,nacimientos de niños por cada nacimiento de niña,rapport naissances masculines/féminines
44206,millions,millones,millions
132706,millions,millones,millions
132806,millions,millones,millions
46206,number of pupils per teacher,número de alumnos por profesor,nombre d’élèves par enseignant
57206,"per 1,000 live births",por cada 1.000 nacidos vivos,pour 1 000 naissances vivantes
57506,"per 1,000 live births",por cada 1.000 nacidos vivos,pour 1 000 naissances vivantes
57806,"per 1,000 people",por cada 1.000 personas,pour 1 000 personnes
57906,"per 1,000 people",por cada 1.000 personas,pour 1 000 personnes
110806,"per 1,000 people",por cada 1.000 personas,pour 1 000 personnes
46006,per 100 people,por cada 100 personas,pour 100 personnes
121206,per 100 people ages 15-64,por cada 100 personas de entre 15 y 64 años,pour 100 personnes de 15 à 64 ans
122006,per 100 people ages 15-64,por cada 100 personas de entre 15 y 64 años,pour 100 personnes de 15 à 64 ans
61006,"per 100,000 people",cada 100.000,pour 100 000 personnes
102506,"per 100,000 people",por cada 100.000 personas,pour 100 000 personnes
112506,"per 100,000 people",por cada 100.000,pour 100 000 personnes
112606,"per 100,000 people",por cada 100.000,pour 100 000 personnes
128306,"per 100,000 people",cada 100.000 personas,pour 100 000 personnes
150206,"per 100,000 people",por cada 100.000 personas,pour 100 000 personnes par an
21806,thousands,miles,milliers
102006,thousands,miles,milliers
111106,thousands,miles,milliers
27706,tonnes,toneladas,tonnes
24106,years,años,années
24206,years,años,années
47906,years,años,années
69206,years,años,années
69706,years,años,années
103006,years,años,années
120606,years,años,années
121106,years,años,années
123306,years,años,années
123406,years,años,années
答案 0 :(得分:2)
您正在将值与对象属性 b 进行比较,但数组中的对象未定义此属性。更改您的代码以与 id 属性进行比较:
if (arr[i].id == value) return arr[i];