如何使用$.each()遍历对象数组并单独获取name/value值?
解决方案
嘿,这个问题其实很好解决,核心就是在$.each()的回调函数里,直接访问每个遍历项的name和value属性,再根据你的需求把它们收集到对应的结构里就行。我给你分几种常见场景举例:
1. 单独提取所有name值到数组
假设你的源数据是类似这样的对象数组:
const sourceData = [ { name: "username", value: "jane_smith", id: 1 }, { name: "email", value: "jane@example.com", id: 2 }, { name: "gender", value: "female", id: 3 } ];
要只收集name,可以这么写:
const nameList = []; $.each(sourceData, function(index, item) { // 把当前项的name属性push到数组里 nameList.push(item.name); }); console.log(nameList); // 输出: ["username", "email", "gender"]
2. 单独提取所有value值到数组
逻辑和上面一致,只是换成访问value属性:
const valueList = []; $.each(sourceData, function(index, item) { valueList.push(item.value); }); console.log(valueList); // 输出: ["jane_smith", "jane@example.com", "female"]
3. 同时提取name和value(两种常见形式)
形式一:组成键值对对象
如果想把name作为键,value作为值,生成一个对象:
const keyValueMap = {}; $.each(sourceData, function(index, item) { keyValueMap[item.name] = item.value; }); console.log(keyValueMap); // 输出: { username: "jane_smith", email: "jane@example.com", gender: "female" }
形式二:保留数组结构,只包含name和value
如果源数据还有其他多余属性,你想过滤掉只保留这两个:
const filteredData = []; $.each(sourceData, function(index, item) { filteredData.push({ name: item.name, value: item.value }); }); console.log(filteredData); // 输出: [{name: "username", value: "jane_smith"}, {name: "email", value: "jane@example.com"}, {name: "gender", value: "female"}]
本质上就是在$.each()的回调里,通过item.name和item.value精准获取你要的字段,再根据需求存入对应的数组或对象就好啦~
内容的提问来源于stack exchange,提问作者Aus-tn
相关产品推荐
相关产品推荐

