Reactjs 从数组中生成键值对字符串
我有以下数组(foodDetailsList) 其中,我希望创建以下变量字符串作为输出:Reactjs 从数组中生成键值对字符串,reactjs,react-native,react-native-android,Reactjs,React Native,React Native Android,我有以下数组(foodDetailsList) 其中,我希望创建以下变量字符串作为输出: 'food[0][food_id]': '5', 'food[0][quantity]': '100', 'food[0][quantity_unit]': 'gm', 'food[1][food_id]': '45', 'food[1][quantity]': '200', 'food[1][quantity_unit]': 'gm', 'food[2][food_id]': '45', 'food[2]
'food[0][food_id]': '5',
'food[0][quantity]': '100',
'food[0][quantity_unit]': 'gm',
'food[1][food_id]': '45',
'food[1][quantity]': '200',
'food[1][quantity_unit]': 'gm',
'food[2][food_id]': '45',
'food[2][quantity]': '200',
'food[2][quantity_unit]': 'gm'
我想尝试以下方法:
const createString = ()=>{
let finalFoodList =[];
foodDetailsList.map((food,key) =>{
finalFoodList.push({
'food['+[key]+'][food_id]'`:food.id,
'food['+[key]+'][quantity]'`:food.quantity
});
});
console.log("final variable is : ",finalFoodList.toString);
}
需要对上述代码进行语法改进,以便接收上述输出。您可以在对象的arr
上使用。对于每个对象,您可以使用它来获取食品id
、数量
和数量单位
属性。基于此,您可以使用.map()
回调中提供的索引i
作为字符串中食品的索引,以所需格式返回字符串。获得字符串数组后,可以使用连接每个字符串
见下例:
const arr=[{“食品id”:5,“数量”:100,“数量单位”:“gm”},
{“食品id”:45,“数量”:200,“数量单位”:“转基因”},
{“食品标识”:22,“数量”:300,“数量单位”:“转基因”};
const res=arr.map({food_id,quantity,quantity_unit},i)=>
`‘食物‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘’`
).join('\n');
控制台日志(res)
您可以使用map
函数在原始数组上迭代,然后使用Object.keys
获取包含的食物对象的所有键,并映射到这些键上,以获得如下通用解决方案:
const foodList=[
{“食品id”:5,“数量”:100,“数量单位”:“转基因”},
{“食品id”:45,“数量”:200,“数量单位”:“转基因”},
{“食品标识”:22,“数量”:300,“数量单位”:“转基因”}]
const foodString=foodList.map((食物,索引)=>
Object.keys(food).map(key=>`food[${index}][${key}]':'${food[key]}`)。join('\n')
).join('\n');
console.log(foodString)代码>请尝试以下操作:
const foodList = [
{"food_id": 5, "quantity": 100, "quantity_unit": gm},
{"food_id": 45, "quantity": 200, "quantity_unit": gm},
{"food_id": 22, "quantity": 300, "quantity_unit": gm}
];
const createString = () => {
const foodLen = foodList.length;
let finalFoodList = foodList.map((food, index) => {
return index !== foodLen ? (
`'food[${index}][food_id]': '${food.food_id}',\n
'food[${index}][quantity]': '${food.quanatity}',\n
'food[${index}][quantity_unit]': '${food.quantity_unit}',\n`
) : (
`'food[${index}][food_id]': '${food.food_id}',\n
'food[${index}][quantity]': '${foof.quanatity}',\n
'food[${index}][quantity_unit]': '${food.quantity_unit}'
);
});
}
获取foodList数组的长度
映射函数创建新数组
map函数中的第二个参数给出当前迭代次数
我们使用三元运算符返回条件输出
你想要的输出是一个对象吗?我希望输出像上面提到的一样是一个字符串,如何创建它的hashmap而不是String?你是说Map对象吗?或者JavaScript中的哈希映射到底是什么?我这样问是因为它不是JS中的本机类型。
const foodList = [
{"food_id": 5, "quantity": 100, "quantity_unit": gm},
{"food_id": 45, "quantity": 200, "quantity_unit": gm},
{"food_id": 22, "quantity": 300, "quantity_unit": gm}
];
const createString = () => {
const foodLen = foodList.length;
let finalFoodList = foodList.map((food, index) => {
return index !== foodLen ? (
`'food[${index}][food_id]': '${food.food_id}',\n
'food[${index}][quantity]': '${food.quanatity}',\n
'food[${index}][quantity_unit]': '${food.quantity_unit}',\n`
) : (
`'food[${index}][food_id]': '${food.food_id}',\n
'food[${index}][quantity]': '${foof.quanatity}',\n
'food[${index}][quantity_unit]': '${food.quantity_unit}'
);
});
}