Dart中如何将另一Map的键作为值生成键从1开始的新Map
Got it, let's break this down for you—turning your original data map's keys into values in a new header map (with numbered keys starting at 1) is totally doable with a simple loop and counter. Below are examples in some of the most common programming languages to fit your use case:
JavaScript Example
If you're working with JavaScript objects (which act like maps here), you can use Object.keys() to get the list of keys from your original data, then loop through them to build the header object:
const data = { "date": "Date", "time": "Time", "from": "From", "to": "To", "color": "Color", "state": "State", "country": "Country" }; const header = {}; // Get the keys of the original data object const keys = Object.keys(data); // Loop through keys, assign numbered keys to header keys.forEach((key, index) => { header[index + 1] = key; }); console.log(header); // Output: {1: "date", 2: "time", 3: "from", 4: "to", 5: "color", 6: "state", 7: "country"}
Java Example
For Java, you'll use a HashMap (or another Map implementation) and iterate over the key set with a counter starting at 1:
import java.util.HashMap; import java.util.Map; public class HeaderMapCreator { public static void main(String[] args) { Map<String, String> data = new HashMap<>(); data.put("date", "Date"); data.put("time", "Time"); data.put("from", "From"); data.put("to", "To"); data.put("color", "Color"); data.put("state", "State"); data.put("country", "Country"); Map<Integer, String> header = new HashMap<>(); int counter = 1; // Iterate over each key in the original data map for (String key : data.keySet()) { header.put(counter, key); counter++; } System.out.println(header); // Output: {1=date, 2=time, 3=from, 4=to, 5=color, 6=state, 7=country} } }
Note: If you need to preserve the exact order of keys from the original data map, use LinkedHashMap instead of HashMap.
Python Example
In Python, dictionaries (maps) are ordered by insertion starting from version 3.7. You can use a dictionary comprehension with enumerate() to build the header quickly:
data = { "date": "Date", "time": "Time", "from": "From", "to": "To", "color": "Color", "state": "State", "country": "Country" } # Use enumerate to get index + 1 as the key, original key as the value header = {index + 1: key for index, key in enumerate(data.keys())} print(header) # Output: {1: 'date', 2: 'time', 3: 'from', 4: 'to', 5: 'color', 6: 'state', 7: 'country'}
The core idea across all languages is the same:
- Retrieve the list of keys from your original
datamap. - Iterate over these keys, assigning each one to a new entry in the
headermap where the key is an incrementing number starting at 1.
内容的提问来源于stack exchange,提问作者mark

