![](/img/trans.png)
[英]How to store values from a particular key from an object into an array - Vue
[英]How to particular key's value in an object based on the values from another array and using arrays sequence in mind
我有一个带有键-值对的对象,该对象基于另一个数组的值,该数组只有与对象键匹配的键。 我想形成一个不同的数组。 请记住数组的顺序,以及我想只用对象值制作另一个数组的相同方法。
我已经尝试过使用object.entries并使用forEach来遍历对象,但无法获得所需的结果。
var arrayLegends = ["totalregisteredfirst","totalregisteredsecond", "totalregisteredfourth"];
var lengendsObj = {totalregisteredfirst: "1st visit", totalregisteredfourth: "4th visit", totalregisteredsecond: "2nd visit"}
var legendsValue = [];
Object.entries(lengendsObj).forEach(function([objKey, objValue]) {
arrayLegends.forEach(function(value) {
if (value === objKey ) {
legendsValue.push(objValue);
}
});
});
console.log('legends value', legendsValue);
预期结果数组= ['第一次访问','第二次访问','第四次访问'];
实际结果数组= ['第一次访问','第四次访问','第二次访问'];
由于arrayLegends
包含您要以正确的顺序在legendsObj
中检索的键,因此只需要遍历arrayLegends
并将相应的值推入legendsValue
中legendsValue
:
var arrayLegends = ["totalregisteredfirst","totalregisteredsecond", "totalregisteredfourth"]; var lengendsObj = {totalregisteredfirst: "1st visit", totalregisteredfourth: "4th visit", totalregisteredsecond: "2nd visit"} var legendsValue = []; arrayLegends.forEach(function(value) { legendsValue.push(lengendsObj[value]); }); console.log('legends value', legendsValue);
看一下这个 :
let arrayLegends = ["totalregisteredfirst","totalregisteredsecond", "totalregisteredfourth"];
let lengendsObj = {totalregisteredfirst: "1st visit", totalregisteredfourth: "4th visit", totalregisteredsecond: "2nd visit"}
var legendsValue = arrayLegends.map((key) => lengendsObj[key]);
您的代码确实接近达到您想要的结果,您只需要使用arrayLegends
作为外部循环,并使用Object.entries(lengendsObj)
作为内部循环:
var arrayLegends = ["totalregisteredfirst","totalregisteredsecond", "totalregisteredfourth"]; var lengendsObj = {totalregisteredfirst: "1st visit", totalregisteredfourth: "4th visit", totalregisteredsecond: "2nd visit"} var legendsValue = []; arrayLegends.forEach(function (value) { Object.entries(lengendsObj).forEach(function([objKey, objValue]) { if (value === objKey ) { legendsValue.push(objValue); } }); }); console.log('legends value', legendsValue);
JavaScript不能保证对象顺序 。 对对象的迭代不一定会在独立运行时以相同的顺序完成。 而是遍历数组; 确实有保证的订单。
var arrayLegends = ["totalregisteredfirst","totalregisteredsecond", "totalregisteredfourth"];
var legendsObj = {totalregisteredfirst: "1st visit", totalregisteredfourth: "4th visit", totalregisteredsecond: "2nd visit"}
var legendsValue = [];
arrayLegends.forEach(k => {
legendsValue.push(legendsObj[k]);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.