data = [
('pale', 'ple', True),
('pales', 'pale', True),
('pale', 'bale', True),
('paleabc', 'pleabc', True),
('pale', 'ble', False),
('a', 'b', True),
('', 'd', True),
('d', 'de', True),
('pale', 'pale', True),
('pale', 'ple', True),
('ple', 'pale', True),
('pale', 'bale', True),
('pale', 'bake', False),
('pale', 'pse', False),
('ples', 'pales', True),
('pale', 'pas', False),
('pas', 'pale', False),
('pale', 'pkle', True),
('pkle', 'pable', False),
('pal', 'palks', False),
('palks', 'pal', False)
]
def test_one_away(data):
for [test_s1, test_s2, expected] in data:
print(test_s1, test_s2)
此数据变量在python中定义。如何在javascript中创建一个类似的数据数组,以便我可以遍历并打印每个项目,如上所示
答案 0 :(得分:2)
一种非常简单的方法是将Python列表转换为Javascript数组,然后像往常一样在循环中访问它们,或者根据需要将它们的值重新分配给局部变量。还要确保将布尔值转换为小写。以下示例与ES6之前的环境兼容:
var data = [
['pale', 'ple', true],
['pales', 'pale', true],
// ...
];
for (var i = 0; i < data.length; ++i)
{
var row = data[i];
var test_s1 = row[0];
var test_s2 = row[1];
var expected = row[2];
// ...
}
如果您的目标环境支持ES6,您可以使用以下变体:
const data = [
['pale', 'ple', true],
['pales', 'pale', true],
// ...
];
for (let row of data)
{
let [test_s1, test_s2, expected] = row;
// ...
}
答案 1 :(得分:1)
您在Javascript中的python代码可能如下所示。
const data = [
['pale', 'ple', true],
['pales', 'pale', true],
['pale', 'bale', true],
['paleabc', 'pleabc', true],
['pale', 'ble', false],
['a', 'b', true],
['', 'd', true],
['d', 'de', true],
['pale', 'pale', true],
['pale', 'ple', true],
['ple', 'pale', true],
['pale', 'bale', true],
['pale', 'bake', false],
['pale', 'pse', false],
['ples', 'pales', true],
['pale', 'pas', false],
['pas', 'pale', false],
['pale', 'pkle', true],
['pkle', 'pable', false],
['pal', 'palks', false],
['palks', 'pal', false]
]
const printMyData = (data) => {
data.forEach(arr => {
console.log(arr[0] + ' ' + arr[1])
})
}
printMyData(data)
&#13;
您必须先对实际数据进行一些重组,并确保您的布尔值是小写的。 printMyData
是一个函数,它接受这个数据和其中的forEach()
数组,记录它的第一个和第二个元素。
答案 2 :(得分:0)
function makeTuple(s1, s2, expected) {
return {
s1: s1,
s2: s2,
expected: expected
};
}
var data = [
makeTuple('pale', 'ple', true),
makeTuple('pales', 'pale', true),
...
];
for (var i = 0; i < data.length; i++) {
var obj = data[i];
console.log(obj.s1, obj.s2);
// console.log(obj.expected);
}
或者你可以简单地使用数组:
var data = [
['pale', 'ple', true],
['pales', 'pale', true],
...
];
for (var i = 0; i < data.length; i++) {
var obj = data[i];
console.log(obj[0], obj[1]);
// console.log(obj[2]);
}
答案 3 :(得分:0)
如果您不想使用密钥,只需创建数组数组:
var data = [['pale', 'ple', true], ['pale', 'ple', true], ['pale', 'ple', true]];